定义一个结构体变量(包括年,月,日)。计算该日在本年中是第几天,注意闰年问题
#include <stdio.h>
struct dayOfYear{
int year, month, day;
};
int main(){
struct dayOfYear p;
printf("请输入年,月,日:\n");
scanf("%d %d %d", &p.year, &p.month, &p.day);
int sum = 0;
int a[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
for (int i = 0; i < p.month - 1; i++)
{
sum = sum + a[i];
}
sum += p.day;
if (p.year % 4 == 0 && p.year % 100 != 0)
{
if (p.month > 2){
sum += 1;
printf("是闰年,是第%d天", sum);
}
else
{
printf("是闰年,是第%d天", sum);
}
}
else if (p.year % 400 == 0)
{
if (p.month > 2)
{
sum += 1;
printf("是闰年,是第%d天", sum);
}
else
{
printf("是闰年,是第%d天", sum);
}
}
else
{
printf("不是闰年是第%d天", sum);
}
}
写一个函数days,实现上面的计算,有主函数将年月日传递给days函数,计算后将日子数传回主函数输出
#include <stdio.h>
struct dayOfYear{
int year, month, day;
};
int days(int year, int month, int day);
int main(){
struct dayOfYear p;
printf("请输入年,月,日:\n");
scanf("%d %d %d", &p.year, &p.month, &p.day);
days(p.year,p.month,p.day);
}
int days(int year, int month, int day){
int sum = 0;
int a[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
for (int i = 0; i < month - 1; i++)
{
sum = sum + a[i];
}
sum += day;
if (year % 4 == 0 && year % 100 != 0)
{
if (month > 2){
sum += 1;
printf("是闰年,是第%d天", sum);
}
else
{
printf("是闰年,是第%d天", sum);
}
}
else if (year % 400 == 0)
{
if (month > 2)
{
sum += 1;
printf("是闰年,是第%d天", sum);
}
else
{
printf("是闰年,是第%d天", sum);
}
}
else
{
printf("不是闰年是第%d天", sum);
}
return 0;
}