holyya.com
2025-09-04 15:44:29 Thursday
登录
文章检索 我的文章 写文章
万年历代码C语言实现
2023-06-19 08:33:56 深夜i     --     --
C语言 万年历 代码 年份 月份 闰年 公式 天数 表头 格式

万年历是人们生活中常用的一种时间工具,C语言作为一种编程语言,可以通过编写程序实现万年历的功能。下面介绍一种使用C语言编写万年历代码的实现方法。

首先,我们需要确定程序的功能。万年历程序的主要功能是显示任意一个年份和月份的日历,以及判断是否为闰年。根据这个功能,我们可以先写出以下部分代码:


#include

int main()

{

  int year, month;

  printf("请输入年份和月份(用空格隔开):\n");

  scanf("%d %d", &year, &month); //读取用户输入的年份和月份

  printf("日 一 二 三 四 五 六\n"); //打印表头

  // 下面写代码实现日历功能

  return 0;

}

在这段代码中,我们初始了两个变量,year和month,用来存储用户输入的年份和月份。然后,通过scanf函数读取用户输入的年份和月份,并打印出表头。接下来,我们需要根据用户输入的年份和月份打印相应的日历。

以下是完整的C语言万年历代码实现:


#include

#include

int main()

{

  int year, month, i, day, m, y, sum;

  printf("请输入年份和月份(用空格隔开):\n");

  scanf("%d %d", &year, &month); //读取用户输入的年份和月份

  printf("Sun Mon Tue Wed Thu Fri Sat\n"); //打印表头

  if (month >= 1 && month <= 12) //判断月份是否正确

  {

    if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) //31天的月份

    

      day = 31;

    

    else if (month == 4 || month == 6 || month == 9 || month == 11) //30天的月份

    

      day = 30;

    

    else  //判断2月份天数

    {

      if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)

      

        day = 29; //闰年2月29天

      

      else

      

        day = 28; //非闰年2月28天

      

    }

    // 根据公式计算出m和y的值,其中m=13转化成1月,14转化成2月,y为年数前两位。

    m = month == 1 ? 13 : month == 2 ? 14 : month;

    y = year % 100;

    sum = y + y / 4 + 5 * (year / 100) / 4 + (13 * (m + 1)) / 5 + 1; 

    sum = sum % 7; //利用公式计算出当前月份的1号是星期几

    for (i = 1; i <= sum; i++) //打印空格占位

    {

      printf("  ");

    }

    for (i = 1; i <= day; i++) //打印日历

    {

      printf("%3d ", i);

      if ((i + sum) % 7 == 0)

      {

        printf("\n");

      }

    }

  }

  else

  {

    printf("您输入的月份有误!\n");

  }

  return 0;

}

上面这段代码中,我们使用了if和else结构来判断每个月的天数,并采用了一个公式,利用年份和月份计算出当前月份1号是星期几。然后我们使用for循环打印出日历并对齐格式。

最后,根据我们编写的万年历代码,可以生成以下几个

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复