根據基姆拉爾森計算公式,演算法如下:
w = (day+2month+3(month-1)/5+year+year/4-year/100+year/400)%7;
解釋:公式中的日期中的日數,month表示日期中的月份數,year代表日期中的年份數
**如下:
#include
#include
//判斷是否閏年
intleapyear
(int year)
else
}int
main
(void
)//每月的天數隨月份的不同而不同
int daycount =0;
switch
(month)
else
break;}
default
:break;}
int blank =0;
blank =(1
+2*month+3*
(month+1)
/5+year+year/
4-year/
100+year/
400)%7
;if(month >12)
printf
("-------------------%d,%d----------------\n"
,year,month)
;printf
("mon\ttue\twed\tthr\tfri\tsat\tsun\n");
int i =0;
for(i =
0;i)for
(i =
1;i<=daycount;i++)}
}
總結:分清楚每月的1號是星期幾即可。所以演算法:
w = (day+2month+3(month-1)/5+year+year/4-year/100+year/400)%7;中的 day = 1.即可
sqlserver擷取日期的年份和月份
sqlserver 擷取日期年份和月份使用datepart函式,函式使用方法如下 一 函式功能 datepart 函式用於返回日期 時間的單獨部分,比如年 月 日 小時 分鐘等等。二 語法 datepart datepart,date 三 引數說明 date 引數是合法的日期表示式。datepart...
得到任意兩個年份之間的各個年份和各個年份所佔的月數
其中startdate必須大於等於enddate public class calendarmgr while startschoolyear endschoolyear int schoolyear new int arrschoolyears.count arrschoolyears.copyt...
列印一年內任意月份的日曆(C語言)
題目要求 2007年1月1日為星期一,編寫乙個函式,輸出2007年任意月份的日曆 這道題我是個人的做法,有個別地方可能有些繞。includeint main printf n n return 0 int iswhatday int month distance days 7 switch dist...