#include<stdio.h>
struct Date
{
int year;
int month;
int day;
} p1 = {1997,7,1}, p2;
int main()
{
int a[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };//用数组来表示月份天数,特殊的先不管。
int cha;
printf("请输入今天的日期年,月,日:");
scanf_s("%d%d%d", &p2.year, &p2.month, &p2.day);
if (p1.year != p2.year)//若是不在同一年的话,年时*365,特殊闰年再+1
{
int y;
y = p2.year - p1.year;
cha = (y) * 365;//cha表示总天数
int i;
for (i = p1.year; i < p2.year; i++)
{
if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0)
{
cha = cha + 1;//闰年天数多一天
}
}
int sum1, sum2;//两个所在年的天数互减
sum1 = p1.day; sum2 = p2.day;
for (i = 0; i < p1.month - 1; i++)
sum1 += a[i];
if (((p1.year % 4 == 0 && p1.year % 100 != 0) || p1.year % 400 == 0) && p1.month > 2)
sum1 = sum1 + 1;
for (i = 0; i < p2.month - 1; i++)
sum2 += a[i];
if (((p2.year % 4 == 0 && p2.year % 100 != 0) || p2.year % 400 == 0) && p2.month > 2)
sum2 = sum2 + 1;
cha = cha - sum1 + sum2;
}
else//在同一年时
{
int sum1, sum2, i;
sum1 = p1.day; sum2 = p2.day;
for (i = 0; i < p1.month - 1; i++)
sum1 += a[i];
if (((p1.year % 4 == 0 && p1.year % 100 != 0) || p1.year % 400 == 0) && p1.month > 2)
sum1 = sum1 + 1;
for (i = 0; i < p2.month - 1; i++)
sum2 += a[i];
if (((p2.year % 4 == 0 && p2.year % 100 != 0) || p2.year % 400 == 0) && p2.month > 2)
sum2 = sum2 + 1;
cha = sum2 - sum1;
}
printf("距离香港回归经过%d天", cha);
return 0;
}
C语言如何计算用结构体表示日期,编写程序计算香港回归的倒计时的天数并输出(1997年7月1日香港回归)
最新推荐文章于 2023-06-01 11:54:23 发布