C语言,函数打印日历

#include<stdio.h>
//#include<iostream> 
int getDate(int year,int month);
int getDay(int year,int month);
main()

int year,month,y,i,j,sum;
char ch;
do{ 
printf("请输入年月:");
scanf("%d %d",&year,&month);
y=getDate(year,month);
sum=getDay(year,month);
printf("日\t一\t二\t三\t四\t五\t六\n");
switch(sum%7)
{
case 0:printf("");break;
case 1:printf("\t");break;
case 2:printf("\t\t");break;
case 3:printf("\t\t\t");break;
case 4:printf("\t\t\t");break;
case 5:printf("\t\t\t\t\t");break;
case 6:printf("\t\t\t\t\t\t");break;  
}
for(i=1;i<=y;i++)
   {
    printf("%d\t",i);
    if((i+sum%7)%7==0)
    printf("\n");
}
printf("\n");
printf("张桐硕2018.7.1完成");
printf("\n");
printf("是否继续查看(y/n)");
fflush(stdin);
scanf("%c",&ch);

while (ch=='y');
//system("pause");
}


int getDate(int year,int month)
{
int y,i,j; 
if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)
  y=31;
  else if(month==4||month==6||month==9||month==11)
y=30;
else if((year%4==0 && year%100!=0)|| (year%400==0))
    y=29;
    else
    y=28;


    
    return y; 
}
int getDay(int year,int month)
{
int sum=0,i,j=0,k,sumb;
int a[100]={31,28,31,30,31,30,31,31,30,31,30,31};
sum=(year-1)*365;
for(i=1;i<year;i++)
{
if((i%4==0 && i%100!=0) || (i%400==0))         //一开始里面用的year判断的 
j++;

}
if((year%4==0 && year%100!=0)|| (year%400==0))
a[1]=29;
for(i=0;i<month-1;i++)
{
sumb+=a[i];
}
sum=sum+j+sumb+1;                                  //一开始没有+1,所以输出的星期是上个月最后一天的星期几 
return sum;


}
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值