一、給出年月日,計算該日是星期幾
在年份中,分為閏年和平年(閏年比一般年份多1天),到第x-1年共經過多少個閏年,[m]表示對m取整,如[2.85]=2;
到第x-1年如果不考慮百年份,那麼經過了[x-1/4]個閏年,
但是這個數值包含了既是整百年份又不能被400整除的年份,因此用[x-1/4]-[x-1/100],
但是這個值又少了被400整除的年份,我們加上是整百年份又能被的年份,[x-1/4]-[x-1/100]+[x-1/400],這個值就是到第x-1年年末共有多少個閏年。
有乙個閏年就比乙個一般年份多一天,有多少個閏年就比多少個一般年份多 多少天,有[x-1/4]-[x-1/100]+[x-1/400]個閏年,就比[x-1/4]-[x-1/100]+[x-1/400]個一般年份這麼多天。
那麼到第x年的第a天,一共經過了(x-1)*365+[x-1/4]-[x-1/100]+[x-1/400]天年
到第x年的第x月的第a天,一共經過了(x-1)*365+[x-1/4]-[x-1/100]+[x-1/400]+a天
因為(x-1)*365÷7與(x-1)÷7同餘,所以用x-1+[x-1/4]-[x-1/100]+[x-1/400]+a 除以7所得餘數即為星期幾
根據曆法原理,有下面公式,代入即可求得某年某月某日是星期幾
此處x是公元的年數,c是從這年的元旦算到這天為止(包括這一天在內)的日數,
//給定年月日,計算該日是星期幾
#includemain()
else
s=a-1+(a-1)/4-(a-1)/100+(a+1)/400+d;
z=s%7;//除7判斷是星期幾
if(z==0) printf(" 這一天為星期天。\n");
if(z==2) printf(" 這一天為星期二。\n");
if(z==3) printf(" 這一天為星期三。\n");
if(z==4) printf(" 這一天為星期四。\n");
if(z==5) printf(" 這一天為星期五。\n");
if(z==6) printf(" 這一天為星期六。\n");
}
二、編制萬年曆
#includelong int f(int year,int month)
long int g(int month)
long int n(int year,int month,int day)
int w(int year,int month,int day)
int date[12][6][7];
int day_tb1[12]=,
};void main()
printf("\n|*************************=== %d年日曆****************************************|\n|",year);
for(i=0;i<6;i++) }
/*char * month_name(int month)
}*/
char * month_name(int month)}
/*按格式列印某年某月名稱*/
void first_line_print(int month, int year)
/*按格式列印星期名稱*/
void week_print()
/*計算該年該月份與已知日子之間的距離天數*/
int date_distance_count(int month, int year)}}
else
if (year == known_year)
}distance = (year - known_year)*365 + leap_year_count + day_count(month);
return distance; }
/*確定該月份第一天是星期幾*/
int makesure_firstday_weekday(int month, int year)
/*依次列印出該月份的日子*/
void print_in_turn(int month, int firstday, int year)
switch(month)
}break;
}case 2:
}break;
}else /*平年*/
SICP練習 45 練習2 4
練習2.4 直接運用對比的技巧就可以猜測出相應的cdr表示如下 define cdr z z lambda p q q 但我們還是要按照題中要求用代換模型來檢驗。先來檢驗car的。car cons 0 1 car lambda m 0 1 lambda z z lambda p q p lambda...
SICP練習 45 練習2 4
練習2.4 直接運用對比的技巧就可以猜測出相應的cdr表示如下 define cdr z z lambda p q q 但我們還是要按照題中要求用代換模型來檢驗。先來檢驗car的。car cons 0 1 car lambda m 0 1 lambda z z lambda p q p lambda...
每日練習 5
c c 1 clone是fork的公升級版本,不僅可以建立程序或者執行緒,還可以指定建立新的命名空間 namespace 有選擇的繼承父程序的記憶體 甚至可以將建立出來的程序變成父程序的兄弟程序等等 2 引用和多型的關係 引用可以作為產生多型效果的手段 3 include void f char p...