2008年6月19日 星期四

萬年曆公式

今天是Allan第一天幫我們上課
一開始感覺還蠻輕鬆的
下午他一出完題目我就開始有點緊張了

老師出了一個題目 要我們輸入年月然後印出該月份的月曆
這就牽扯到了萬年曆的算法 因為我們要先算出該月份的一號是星期幾

這邊就簡單說明一下萬年曆的公式
1. 我們要先判斷該年是不是閏年
如果該年可以被4整除
      不被100整除
      或被400整除就是閏年

2. 接著我們去算該年年初到該天的天數
每個月天數總和 M[12]={0,31,59,90,120,151,181,212,243,273,304,334}
DAY = M[月-1] + 日 + 1(如果有閏年)
例如今天是2008/6/19  
一 二 三 四 五 六
DAY = M[6-1] + 19 +1 = 151 +19 + 1 = 171

3. ((西元年-1) + (西元年-1)/4 - (西元年-1)/100 + (西元年-1)/400 + DAY) % 7
以今天來算 ((2008-1) + (2008-1)/4 - (2008-1)/100 + (2008-1)/400 +171) % 7 = 4
所以今天是星期四

今天聽到題目一下子傻掉
因為以前Johnie都會把規則打好給我們
現在老師只簡單的說明程式的需求 其它就要我們自己想了
真的還蠻有討戰性的 希望明天可以把程式寫出來

1 意見:

匿名 提到...

又是數學!!!!
是又學數!!!!!
數學又是!!!!!!
學數是又!!!!!!!