输入一个日期的年月日,计算并输出这天是该年的第几天,例如2011年1月31是该年的31天

输入一个日期的年月日,计算并输出这天是该年的第几天,例如2011年1月31是该年的31天

问题描述:

输入一个日期的年月日,计算并输出这天是该年的第几天,例如2011年1月31是该年的31天


#include <stdio.h>
void main()
{
    int year, month, day, days, i, d;
    printf("请输入年 月 日:\n");
    scanf("%d %d %d", &year, &month, &day);
    days = 0;
    for (i = 1; i < month; i++)
    {
        switch (i)
        {
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            d = 31;
            break;
        case 4:
        case 6:
        case 9:
        case 11:
            d = 30;
            break;
        case 2:
            if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
                d = 29;
            else
                d = 28;
        }
        days += d;
    }
    printf("%d年%d月%d日是这一年的第%d天。\n", year, month, day, days + day);
}


#include <stdio.h>
 int main() 
 { 
 int day, month, year, sum, leap; 
 printf("\n请输入年、月、日,格式为:年,月,日(2015,12,10)\n");
 scanf("%d%d%d", &year, &month, &day); // 格式为:2019 05  10
 switch (month) // 先计算某月以前月份的总天数 
  { case 1:sum = 0;break; 
    case 2:sum = 31;break;
    case 3:sum = 59;break; 
    case 4:sum = 90;break;
    case 5:sum = 120;break; 
    case 6:sum = 151;break; 
    case 7:sum = 181;break; 
    case 8:sum = 212;break; 
    case 9:sum = 243;break; 
    case 10:sum = 273;break;
    case 11:sum = 304;break; 
    case 12:sum = 334;break;
    default:printf("data error");break; } 
  sum = sum + day; // 再加上某天的天数 
  if (year%400 == 0 || (year % 4 == 0 && year %100 != 0))
   { // 判断是不是闰年 
   leap = 1; 
   } 
   else
    { leap = 0; 
   } 
   if (leap == 1 && month > 2) 
   { // *如果是闰年且月份大于2,总天数应该加一天 
   sum++; 
   } 
    printf("这是这一年的第 %d 天。", sum);
    printf("\n"); 
}