美文网首页
C语言:键盘输入年月日,计算这一天是这一年的第几天

C语言:键盘输入年月日,计算这一天是这一年的第几天

作者: 麻花猫耳朵 | 来源:发表于2021-08-17 15:34 被阅读0次

比如输入20201010,计算10号这一天是2020年的第几天

首先要考虑这一年是平年还是闰年,其次考虑所有的月份有多少天,最后是考虑怎么去把所有的天数加在一起。

平年的二月份有28天,闰年的二月有29天,所以要判断这一年是平年还是闰年;而判断是不是闰年的标准就是这一年除以400能除尽或者这一年除以4和除以100都能除尽,即year%4==0 && year%100!=0 || year%400==0。

要计算天数之和,就要按月分开计算,既然要分情况计算天数,就要考虑使用switch来进行循环判断。

月份都是随着天数逐渐递增的,所以当月天数必定占一个分支,而且switch必须要经过这个分支,所以case的值就应该是1,这样才能保证switch一定经过case1来计算当月天数;

当月之前的天数一定在1-11月之间,因为当月是12月的话,在case1中就已经加上了;

此时还有一个问题,就是二月份到底应该写多少天?可以先按28天来算。其实不管是28还是29都可以,只不过最后结果进行一步修正,采用29天那就判断一下,当年不是闰年那就在结果上减去一天,是闰年就直接输出打印结果。

如果当月在二月之前,或者在二月月末之前是不是就不用考虑需不需对结果进行修正,对结果进行加一操作了呢?

所以if判断条件还需要加上一个判断:month>=3,此判断和前一个年份判断必须是“与”的关系,即这两个判断条件必须同步成立if才为真,才对结果进行加一操作。

代码如下:

#include <stdio.h>
int main()
{
     int year, month, day;
     int s=0;
     scanf("%d%d%d", &year,&month,&day);
     switch(month) {
         case12: s+=30; //加上11月的30天
         case 11: s+=31; //加上10月的31天
         case 10: s+=30; //加上 9月的30天
         case 9: s+=31;
         case 8: s+=31;
         case 7: s+=30;
         case 6: s+=31;
         case 5: s+=30;
         case 4: s+=31;
         case 3: s+=28; //先按平年算,加上2月的28天
         case 2: s+=31; //加上 1月的31天
         case 1: s+=day; //加上当月天数
    }
     if((year%4==0 && year%100!=0 || year%400==0) && month>=3)
         s++;
     printf("%d\n",s);
     return 0;
}

相关文章

  • C语言:键盘输入年月日,计算这一天是这一年的第几天

    比如输入20201010,计算10号这一天是2020年的第几天 首先要考虑这一年是平年还是闰年,其次考虑所有的月份...

  • 2. 计算这两个数的和

    编写程序:输入两个数,计算这两个数的和,并输出结果。 知识点: 1. C语言程序读取键盘输入的方法 2. 算术运算...

  • C语言与C++学习路线!你走了哪一步?

    有人说:“C生万物,编程之本”,这一点都没有错! C语言是最接近计算机的语言,很多时间,我们都会发现,C语言是非常...

  • python 百天学习之第七天 案例练习

    练习1:返回列表中最大和第二大的元素的值: 练习2:计算指定的年月日是这一年的第几天: 练习3:杨辉三角 练习4:...

  • 20181222课程记录

    1. C语言 1.1 C语言入门 代码云盘链接 提取码: vcrg 项目:2019年个税计算器 1.2 C语言初阶...

  • 什么是C语言?

    什么是C语言? C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目...

  • C、C++、JAVA、Python简介

    C语言: C 语言是一种通用的、面向过程式的计算机程序设计语言。1972 年,为了移植与开发 UNIX 操作系统,...

  • day_01_数据类型、数组、内存布局

    c与c++C语言是一门通用计算机编程语言,广泛应用于底层开发。c语句是面向过程的语言,c++是面向对象的语言,C+...

  • 什么是C语言?C语言是做什么的?

    什么是C语言?C语言是做什么的? C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方...

  • C语言

    一、C简介 1.1 什么是C语言? C语言是一门通用计算机编程语言,C语言的设计目标是提供一种能以简易的方式编译、...

网友评论

      本文标题:C语言:键盘输入年月日,计算这一天是这一年的第几天

      本文链接:https://www.haomeiwen.com/subject/aghibltx.html