c语言确定母亲节思路,C语言有关确定日期的相关问题
經常在實際問題中會碰到類似日期確定的相關問題,在這里給大家做了一個簡單的總結,希望能啟發更多的想法:
閏年的確定:
對于確定日期過程中經常會遇到對閏年判斷,此處犯難的原因大多并不是算法的問題,而是對閏年的計算方法不夠透徹。所謂閏年,即每四年一閏,每一百年減一閏,每四百年加一閏。由此便可很簡單的寫出判斷閏年的語句:
About this day:
Enter a certain day (a year,month and day ) , to determine the day of the year( from the first day )?
such as : input: 2017,1,5
對于這個問題,無非是要求確定輸入的日期是一年的第幾天,由此我們做如下分析:
首先,年份分閏年平年,因此此處便要用到上述對閏年的判斷,判斷年份之后需要對于平年和閏年分別進行分析;
其次,一年12個月分大小月,當輸入月份之后,就是對月份的判定,對于3月以后的月份,2月的29號對天數將有影響,因此可以2月作為一條分界線。大月:1,3,5,7,8,10,12為31天,小月:4,6,9,11。由于以2月作為一次分界,因此可將1月單獨考慮,即一月的日期就是該日期的天數。對于之后的日期,我們只需對此月前面的月份天數求和,然后加上該月的日期就是該日期的天數。
思路基本確定,然后就是用語句來實現:(簡單以a,b,c代表年,月,日)
1.閏年: 1月日期正好就是其序數,2月則為1月的31天加上日期數,閏年2月為29天,以一個大月和一個小月為一個周期共61天,此時1,2月加起來為60天,因此最終的周期數要減一:
2.平年:與閏年類似
確定母親節:
有這樣一個問題:
母親節是每年的五月第二個星期天,針對輸入的年份,計算該年的哪一天是母親節。
對于這個問題,乍一看似乎對此沒有絲毫頭緒,但稍微分析一下就會找到一點思路:
首先,母親節是每年的五月第二個星期天,那么我們所要找的就是每年的五月第二個星期天是幾號;從整體上來看,如果不存在閏年的影響,即一年是365天,利用周期性可以計算出365%7=1,意味著每年母親節的日期往前延順一天,即2014年母親節如果是11號,那么可以確定2015年母親節是10號,而對于五月的第二個星期天,顯然只能出現在8號到14號這個區間內,因此現在只需要某年的母親節就可以得到所有的母親節的日期,即相差的年份對7取余,在補上閏年增加的天數,就是向前延順的日期。
湊巧的是,2000年的母親節正好是14號,因此就可以得到一個簡單的算法(由于四百年加一閏,一百年減一閏,因此這個只是局限于2000年到2100年之間):
可以在此基礎上改進使得能夠計算任意的母親節的日期。
總結
以上是生活随笔為你收集整理的c语言确定母亲节思路,C语言有关确定日期的相关问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PMP项目管理-项目成本管理(3)
- 下一篇: 在ubuntu用audacity把音频转