C语言实现:输入一个年月日计算出此日是本年的第几天
#include "stdafx.h"
#include<stdio.h>
#include<string.h>
#include <math.h>
#include<stdlib.h>
#pragma warning(disable:4996)
/*
平年365天,其中2月28天,
闰年366天,其中2月29天.
平年365(1-12月分别为31天,28天,31天,30天,31天,30天,31天,31天,30天,31天,30天,31天)
闰年366(1-12月分别为31天,29天,31天,30天,31天,30天,31天,31天,30天,31天,30天,31天)
*/
struct date
{
int year, mouth, day;
};
int main(void)
{
struct date d;
int i, k = 0, nday = 0;
printf("请输入当前年月日: ");
scanf("%d%d%d", &d.year, &d.mouth, &d.day);
///先判断是否是闰年,符合条件就是闰年,k置为1
if (d.year % 4 == 0 && d.year % 100 != 0 || d.year % 400 == 0)
k = 1;
for (i = 1; i<d.mouth; i++)
{
//如果是2月并且是闰年,加上29天
if (i == 2 && k == 1)
nday += 29;
else if (i == 2)
nday += 28;
else if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12)
nday += 31;
else
nday += 30;
}
nday += d.day;
printf("今天是今年的第 %d 天\n", nday);
getchar();
system("pause");
return 0;
}