void main()
{
Printf("這個程序找到星期幾並打印今年的年歷。如果是非法進入,會自動退出:\ n”);
Printf("請輸入年、月、日:");
while(1)
{
循環:
// printf("請輸入年、月、日:");
int o,p,q;
齊星,意大利,墨西哥,荷蘭,中國;
scanf("%d%d%d ",& ampo & amp;p & amp;q);//參數對應年、月、日。
如果(o & lt0 | | p & gt12 | | p & lt;0 | | q & lt0 | | q & gt31) //非法輸入判斷
{
Printf("非法輸入,請按任意鍵退出\ n ");//非法退出
打破;
}
y = o;
m = p;
d = q;
if(m==1||m==2)
m = m+12;
如果(m & gt12)
y = y-1;
YY = y % 100;
c =(y/100);
w = YY+(YY/4)+(c/4)-2 * c+(26 *(m+1)/10)+d-1;//周計算
齊星= w % 7;
如果(齊星& lt0)
齊星= 7+齊星;//星期修正
If(齊星==0) printf("今天是星期天\ n ");//打印星期
If(齊星==1) printf("今天是星期壹\ n ");
If(齊星==2) printf("今天是星期二\ n ");
If(齊星==3) printf("今天是星期三\ n ");
If(齊星==4) printf("今天是星期四\ n ");
If(齊星==5) printf("今天是星期五\ n ");
If(齊星==6) printf("今天是星期六\ n ");
//printf("按任意鍵繼續:\ n ");
//if((n = getchar())= ' \ n ')break;
//goto循環;
//返回();
//printf(" erro ");
int uu//句子
if((y % 4 = = 0 & amp;& ampy%100!=0)||y%400==0) // Off
uu = 1;//飛躍
否則//年
uu = 0;
If(uu==1) //
Printf("%d是閏年:\n ",y);//打印
Else //是
Printf("%d年不是閏年\n ",y);//沒有
//閏年
Printf("%d日歷打印如下:\n ",y);//打印年歷
int i,j,k,PP;
for(I = 1;我& lt13;i++)
{
if(I = = 1 | | | I = = 3 | | I = = 5 | | | I = = 7 | | | I = = 8 | | | | I = = 10 | | | I = = 12)//打印大月份。
{printf("\n %d month: \n\n ",I);
printf(" Day 123456 \ n ");
printf(" ");//20個空格
PP =(YY+(YY/4)+(c/4)-2 * c+(26 *(I+1)/10))% 7;//計算壹個月中的某壹天,1。
if(PP & lt;0)
PP = 7+PP;
for(j = 0;j & lt6 * ppJ++) //1為空。
printf(" ");
for(j = 1;j & lt32;j++)
{
printf("%-6d ",j);//%-6d左對齊。
if((pp+j)%7==0)
{//換行判斷
printf(" \ n ");
printf(" \ n ");
printf(" ");//轉行前的空格
}
}
}
if(I = = 4 | | | I = = 6 | | | I = = 9 | | | I = = 11)//打印中間的月份。
{printf("\n %d month: \n\n ",I);
printf(" Day 123456 \ n ");
printf(" ");
PP =(YY+(YY/4)+(c/4)-2 * c+(26 *(I+1)/10))% 7;
if(PP & lt;0)
PP = 7+PP;
for(j = 0;j & lt6 * ppj++)
printf(" ");
for(j = 1;j & lt31;j++)
{
printf("%-6d ",j);
if((pp+j)%7==0)
{
printf(" \ n ");
printf(" \ n ");
printf(" ");
}
}
}
If(i==2) //打印平月。
{printf("\n %d month: \n\n ",I);
printf(" Day 123456 \ n ");
printf(" ");
PP =(YY+(YY/4)+(c/4)-2 * c+(26 *(I+1)/10))% 7;
if(PP & lt;0)
PP = 7+PP;
for(j = 0;j & lt6 * ppj++)
printf(" ");
if(uu==1)
for(j = 1;j & lt30;j++)
{
printf("%-6d ",j);
if((pp+j)%7==0)
{
printf(" \ n ");
printf(" \ n ");
printf(" ");
}
}
如果(uu==0)
for(j = 1;j & lt29;j++)
{
printf("%-6d ",j);
if((pp+j)%7==0)
{
printf(" \ n ");
printf(" \ n ");
printf(" ");
}
}
}
printf(" \ n ");//每月打印後換行。
}
printf(" \ n ");
//printf("按任意鍵繼續:\ n ");
Printf("請輸入年、月、日繼續:");
轉到循環;
//system(" PUUSE ");
}
}