各位程式猿/媛們,來用程式碼算一算在這個世界上活了多少天吧
為了提升小程式的使用者體驗,不讓使用者做過多的輸入,我們引入C語言中的<time.h>這個標頭檔案,讓程式自動讀取本機時間,使用者只需要輸入自己的生日,即可獲悉自己的存活天數。
首先介紹一下<time.h>的部分用法:
與日期和時間相關的資料結構
由此可知,tm是一個結構體,裡面的一系列成員即是與本機時間相關的引數。 需要注意的是,tm_year並不是實際的公元紀年,tm_year+1900才是實際的公元紀年,tm_mon也不是實際的月份,tm_mon+1才是實際的月份。例如,今天是2018年8月13日,tm_year的實際值是118,tm_mon的實際值是7。
下面我們嘗試列印一下本機時間,裡面的部分程式碼是獲取本機時間的固定形式。
下面進入核心演算法部分:
整個小程式雖然只有一行輸入和一行輸入,裡面設計的內容卻複雜的很。需要涉及閏年的問題,(year%4==0&&year%100!=0||year%400==0)為真的即為閏年,閏年的2月有29天。
上程式碼:
為了體現整個思路的流暢性,我幾乎將所有的程式碼都放到了主函式中,請大家見諒。
由上述程式碼可知,我將天數的計算分成了三部分,一部分是前向天數,一部分是中間天數,一部分是後向天數。所謂的前向天數是指出生日期當年剩餘的天數,例如出生日期為1999年6月18日,則前項天數為自1999年6月19日0時起至1999年12月31日24時止的總天數;後向天數是指本機日期當年已經經過的天數;例如本機時間為2018年8月13日,則後向天數為自2018年1月1日0時起至2018年8月13日24時止的總天數。而中間天數是指間隔年的所有天數,舉個例子,1998年3月2日和2000年6月18日,間隔年就是1999年這一整年;若是1998年3月2日和1999年6月18日,則沒有間隔年,只有前向天數和後向天數。間隔年若為閏年則天數加上366,間隔年若為正常年份則天數加上365。此外,在前向天數和後向天數的計算中,也要注意考慮閏年和正常年份,以及2月這個特殊的月份。
最後為大家展示一下實驗結果:
人生不過三萬天,你有多少的時間虛度了,又有多少的時間用來敲了程式碼,又有多少的時間陪了家人和朋友。希望各位程式猿/媛們可以拿出更多的時間做更有意義的事。共勉。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31546605/viewspace-2213010/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 程式媛眼中的程式猿原來是這樣子的!
- 程式媛上班第一天,盡然讓我做這個?!
- 各位還想去外包公司的,來看看程式碼質量吧
- 滬漂程式媛妹子的一天...
- DeBug Python程式碼全靠print函式?換用這個一天2K+Star的工具吧Python函式
- 用ThreadLocal來優化下程式碼吧thread優化
- 原來程式媛的一天是“醬紫”的|北京IT女子生存錄
- 第一篇文章-加油吧!預備役程式媛
- 這樣用技術,程式猿更幸福
- 程式猿們,容器映象瞭解一下……
- 一個安卓程式媛的人生經驗安卓
- 什麼?又來智慧AI程式設計?讓不讓我們活了!AI程式設計
- 一個成都程式猿寫於離開北京一週年與26歲生日的這一天。
- 面試官:我們來聊一聊Redis吧,你瞭解多少就答多少面試Redis
- 大程式猿們用啥手機啊,我瞅瞅做個調查。
- 使用這11個程式碼,可以大大地簡化我們的程式碼。
- 程式猿(媛)自己人的微信圈子 (期待各路大神的加入)
- 手寫指令碼程式碼太累!搞一個生成工具吧指令碼
- 一個忙禿頭程式媛的 2021 年總結
- 一個老程式猿的焦慮3
- 一個程式猿試用有道雲筆記VIP功能體驗筆記
- 你離高質量程式碼封裝只差一個閉包,快來get吧!封裝
- 程式碼託管-公司用gitlab,我們用github(一)GitlabGithub
- 祝各位碼友們元旦快樂!2021 一切越來越好!
- 兩天擼一個天氣應用微信小程式微信小程式
- 一個程式猿的2023總結:《尋找》
- 第一個mpvue小程式開發完了,來總結下吧Vue
- 程式媛的人生觀
- 面試官:來寫個程式碼求一下兩個數的最大公約數吧面試
- 你是不是這樣的程式猿
- 你是不是這樣的程式猿?
- Linux中最多有多少程式?一個程式最多有多少執行緒?Linux執行緒
- 世界上最大的程式碼庫
- 來開發一個wanandroid快應用吧NaNAndroid
- 程式猿生存指南-57 故友來京
- 裝修小程式原始碼多少錢?裝修小程式開發費用多少?原始碼
- 程式猿如何打造個人品牌?
- Mac小技巧:來使用照片程式製作一個幻燈片吧!Mac