题目:用户输入年份,打印该年日历(蔡勒公式计算该年1.1是周几,只适用于1582年10月15日之后!) 后面附有蔡勒公式详解(百度百科)了解即可。
代码如下:
//输入年份,打印该年日历(蔡勒公式计算该年1.1是周几,只适用于1582年10月15日之后!) #includeint Get_Week(int year,int month,int day){ //导入蔡勒公式计算某年1.1是周几 if(month==1||month==2){ year--; month+=12; } int c=year/100; int y=year-c*100; int week=y+y/4+c/4-2*c+26*(month+1)/10+day-1; while(week<0){ week+=7; } week%=7; int arr[7]={0,1,2,3,4,5,6}; return arr[week]; } bool IsLeapYear(int year){ //计算是否为闰年,bool类型返回true/false if(year%400==0||(year%4==0&&year%100!=0)){ return true; } return false; } int Get_YM_Day(int year,int month){ //一维数组 查表法 返回该年该月有多少天 int arr[13]={29,31,28,31,30,31,30,31,31,30,31,30,31}; int i=0; if(IsLeapYear(year)&&month==2){ return arr[i]; } else{ i=month; return arr[i]; } } void Get_Date(int day,int week){ //打印日历(与低阶版已知该月有多少天,该月第一天为周几打印该月日历相同) char strfill[]={" "}; //字符串填充 int i=0,k=0; printf(" 日 一 二 三 四 五 六 n"); for(i=0;i 代码实现如下:(太长了 分成了三块)
蔡勒公式(百度百科):
ps:大家对蔡勒公式了解即可,不必做过多研究。
希望大家静下心好好分析代码然后自己动手敲,切勿直接复制粘贴!
加油加油!!!



