跪求万年历的c语言源程序~
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 ");
}
}