【C语言】计算某年某月某日在当年的第几天

本文详细描述了一个C语言程序,用于计算给定年月日时,根据闰年规则确定月份总天数。程序利用switch和for循环结构,结合用户输入的年、月、日进行计算,并在末尾提供运行示例和代码思路分析。

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

1.源代码

#include<stdio.h>

int main()

{    int year,month,day,days,i;

	 int d=0;
	
     scanf("%d%d%d",&year,&month,&day);

     days=0;

     for(i=1;i<month;i++)

     {     switch( i )

            {   
                case 1:d=31;break;
                
				case 3:d=31;break;
				
				case 5:d=31;break;
				
				case 7:d=31;break;
				
				case 8:d=31;break;
				
				case 10:d=31;break;
				
				case 12:d=31;break;

                case 4:d=30;break;
                
				case 6:d=30;break;
					
				case 9:d=30;break;
					
				case 11:d=30;break;
				

                case 2:

                if((year%4==0 && year%100!=0)|| year%400==0) 
				 	d=29;
            	else
					d=28;
					break;
				 
                 
                

                        

        }
           
       days=d+days;     

    }

     printf("%d\n",days+day);

      return 0;

}

2.运行示例

3.代码思路

  • 首先,定义了几个整型变量,分别是year(年份),month(月份),day(日期),days(累计天数),i(循环变量)和d(每月天数)。
  • 然后,使用scanf函数从标准输入读取年、月、日的值,并赋给相应的变量。
  • 接着,将days的初始值设为0,表示还没有开始计算天数。
  • 然后,使用一个for循环,从1开始遍历到month-1,即给定月份的前一个月,对每个月份执行以下操作:
    • 使用一个switch语句,根据月份的不同,给d赋上该月的天数。例如,1月、3月、5月等有31天,4月、6月、9月等有30天,2月则要根据是否是闰年来判断,如果是闰年则有29天,否则有28天。闰年的判断条件是:能被4整除但不能被100整除,或者能被400整除。
    • 将d的值加到days上,表示累计到当前月份的天数。
  • 最后,将day的值也加到days上,表示累计到给定日期的天数,并使用printf函数将days的值输出到标准输出,后面跟一个换行符。
  • 返回0,表示程序正常结束。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值