用c语言写出万年历

用简单的c语言来实现万年历

#include <stdio.h>

int dp[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}};

int getweekend(int y,int m,int d)
{
if(m1||m2)
{
m+=12;
y–;
}
int w= (d+2m+3(m+1)/5+y+y/4-y/100+y/400+1)%7;
return w;
}
int chick(int year)
{
return ((year%40&&year%100!=0)||year%4000) ;
}

void show(int year,int month,int wd)
{
int leep=chick(year);
printf(" 日 一 二 三 四 五 六\n");
int f=0,cnt=0,i;
while(cnt<dp[leep][month]){
for(i=0;i<7;i++){
if(i<wd&&f==0){
printf(" “);
}
else
{
f=1;
if(cnt<dp[leep][month])
{
printf(”%6d",++cnt);
}
else printf(" “);
}
}
printf(”\n");
}
}
int main()
{
int year,month,wd;
printf(“请输入查询的年份和月份(中间用空格隔开)\n”);
scanf("%d %d",&year,&month);
wd=getweekend(year,month,1);
show(year,month,wd);
return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一个简单的万年历C语言实现。以下是代码示例: ```c #include <stdio.h> int main() { int year, month, day, days_in_month, start_day, i, j; // 获取年份 printf("请输入年份:"); scanf("%d", &year); // 获取月份 printf("请输入月份:"); scanf("%d", &month); // 计算该月份有多少天 if (month == 2) { if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { days_in_month = 29; } else { days_in_month = 28; } } else if (month == 4 || month == 6 || month == 9 || month == 11) { days_in_month = 30; } else { days_in_month = 31; } // 计算该月份的第一天是星期几 start_day = 1; for (i = 1; i < month; i++) { if (i == 2) { if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { start_day += 29; } else { start_day += 28; } } else if (i == 4 || i == 6 || i == 9 || i == 11) { start_day += 30; } else { start_day += 31; } } start_day = (start_day % 7 + 1) % 7; // 打印日历 printf("\n日 一 二 三 四 五 六\n"); for (i = 0; i < start_day; i++) { printf(" "); } for (j = 1; j <= days_in_month; j++) { printf("%2d ", j); if ((j + start_day) % 7 == 0) { printf("\n"); } } printf("\n"); return 0; } ``` 在此代码中,我们使用了一些基本的C语言知识,如变量、循环和条件语句。程序首先获取用户输入的年份和月份,然后计算该月份的天数和第一天是星期几。最后,程序打印一个简单的日历,其中包括该月份的每一天以及星期几。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值