各位程式猿/媛們,來用程式碼算一算在這個世界上活了多少天吧
為了提升小程式的使用者體驗,不讓使用者做過多的輸入,我們引入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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 程式媛眼中的程式猿原來是這樣子的!
- 程式猿與程式媛
- 女程式媛與男程式猿的一天,萌萌噠!
- 初為程式猿(媛)的你,這些技能可以為你們加持
- 程式設計師節來了,祝猿媛們節日快樂程式設計師
- [程式設計師日]送給猿(媛)們的福利程式設計師
- 程式媛上班第一天,盡然讓我做這個?!
- 世界上第一臺計算機被複活了!計算機
- 真二叉樹,程式猿們顫抖吧二叉樹
- 為什麼是“程式猿”而不是“程式媛”?
- 程式媛往往比程式猿更受認可
- 各位還想去外包公司的,來看看程式碼質量吧
- 滬漂程式媛妹子的一天...
- 傳說中程式猿與程式媛的後代?
- 讓我們來搞崩 Cocoa 吧(黑暗程式碼)
- 單身程式猿適合找單身程式媛嗎?
- DeBug Python程式碼全靠print函式?換用這個一天2K+Star的工具吧Python函式
- 面試官:我們來聊一聊Redis吧,你瞭解多少就答多少面試Redis
- 用ThreadLocal來優化下程式碼吧thread優化
- 原來程式媛的一天是“醬紫”的|北京IT女子生存錄
- 做一個女神一樣的程式媛
- 我們的程式“猿”
- 什麼?又來智慧AI程式設計?讓不讓我們活了!AI程式設計
- 第一篇文章-加油吧!預備役程式媛
- [譯]來試試這個真正的 JavaScript 偵錯程式吧!JavaScript
- 一個安卓程式媛的人生經驗安卓
- 同學們,一起來視覺化程式設計吧視覺化程式設計
- 寫給未來的程式媛
- 一個成都程式猿寫於離開北京一週年與26歲生日的這一天。
- 這樣用技術,程式猿更幸福
- 程式猿們,容器映象瞭解一下……
- Google 工程師一天需要寫多少行程式碼?Go工程師行程
- 身邊的一個可愛女程式媛
- 使用這11個程式碼,可以大大地簡化我們的程式碼。
- 未來程式猿之歌
- 程式設計師在簡書|一個來自麋鹿故鄉的媛程式設計師
- 大程式猿們用啥手機啊,我瞅瞅做個調查。
- 請問各位高手這個程式能不能寫註冊器出來?還是要用窮舉法來算註冊碼? (802字)