c语言输出日历

本文介绍了一个使用C语言编写的简单日历程序。程序通过用户输入的年份和月份,计算并显示该月的日历视图。涉及闰年判断、日期计算等关键逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<stdio.h>
void main()
{
/*参数说明:
 year-用户输入的年份;
 month-用户输入的月份;
 sum-所有的天数;
 flag-标记该年是否是闰年,1为闰年,0为平年*/
 int year,month,sum=0,flag=0;
 printf("please input the year:");
 scanf("%d",&year);
 printf("please input the year of month:");
 scanf("%d",&month);
//下面的循环是计算从公元一年到该年的上一年的所有天数
 for(int i=1;i<year;i++)
 {
  if(i%4==0 && i%100!=0 || i%400==0)
  {
   flag=1;
   sum=sum+366;
  }
  else
   sum=sum+365;
 }
//按照capucivar的思路,接下来要计算从该年1月到用户输入月份的上一个月的天数
 for(int j=1;j<month;j++)
 {
  switch( j )
  {
  case 1:
  case 3:
  case 5:
  case 7:
  case 8:
  case 10:
  case 12:
   sum=sum+31;
   break;
  case 2:
   if(flag=1)
    sum=sum+29;
   else
    sum=sum+28;
   break;
  default:
    sum=sum+30;
   break;
  }
 }
 int a=sum%7;//计算出总天数跟7求余,得到一个余数
 int monthDay;//z是用户输入月份的天数
 switch(month)
 {
  case 1:
  case 3:
  case 5:
  case 7:
  case 8:
  case 10:
  case 12:
   monthDay =31;break;
  case 2:
   if(flag=1)
   {
    monthDay =29;
   }
   else
   {
    monthDay =28;
   }
   break;
  default:
    monthDay =30;break;
 }
 printf("/n星期天/t星期一/t星期二/t星期三/t星期四/t星期五/t星期六/n");
/*最后就要按照一定格式输出日历。假如上面的a计算出来是3的话,
 那该月1号就是星期三,我们级必须将1放到星期三下面,而前面需要用跳格来填充。
 仔细看看capucivar是如何实现的*/
 for(int x=1;x<= monthDay +a;x++)
 {
  if(x<=a)
   printf("/t");
  else
  printf("%d/t",x-a);
  if(x%7==0)
   printf("/n");
 }
printf("/n");
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值