阴历年月 24节气的算法 c语言
阴历年月 24节气的算法 c语言#includevoid DateTrans(char *chDate,int *nYear,int *nMonth,int *nDay); // 1int IsLeapYear(int nYear); // 2int GetWeekOfFirstday(int nYear); // 3int GetWeek(int nYear,int nMonth,int nDay,int nWeekOfFirstday); // 4void PrintCalendar(int nWeek,int nDay,int nMonthDays,char *chDate); // 5void DateTrans(char *chDate,int *nYear,int *nMonth,int *nDay) // 1{ *nYear=(chDate[0]-'0')*1000+(chDate[1]-'0')*100+(chDate[2]-'0')*10+chDate[3]-'0'; *nMonth=(chDate[5]-'0')*10+chDate[6]-'0'; *nDay=(chDate[8]-'0')*10+chDate[9]-'0';}int IsLeapYear(int nYear) // 2{ if(nYear%4==0) return 1; else return 0;}int GetWeekOfFirstday(int nYear) // 3{
if(nYear>2000) return ((nYear-2001)*365+(nYear-2001)/4+1)%7; else if(nYear<2000) return 6-((2000-nYear)*365+(2000-nYear)/4)%7; else return 6;}int GetWeek(int nYear,int nMonth,int nDay,int nWeekOfFirstday) // 4{ int nDaysYear[]={31,28,31,30,31,30,31,31,30,31,30,31}; int nDaysLeapYear[]={31,29,31,30,31,30,31,31,30,31,30,31}; int i,sum=0; if(nYear%4==0) { for(i=0;i