定义一个结构体类型(包括年、月、日)。编写程序读入“年-月-日”格式的日期,并计算该日期是该年中的第几天。注意闰年问题
时间: 2023-12-03 15:06:58 浏览: 145
Python编程实现输入某年某月某日计算出这一天是该年第几天的方法
以下是C++代码实现:
```c++
#include<iostream>
using namespace std;
struct Date{
int year;
int month;
int day;
};
bool isLeapYear(int year){
return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}
int getDayOfYear(Date date){
int daysInMonth[] = {31,28,31,30,31,30,31,31,30,31,30,31};
int result = date.day;
for(int i = 0; i < date.month - 1; i++){
result += daysInMonth[i];
}
if(date.month > 2 && isLeapYear(date.year)){
result += 1;
}
return result;
}
int main(){
Date date;
cout<<"请输入日期(格式为 yyyy-mm-dd):";
scanf("%d-%d-%d",&date.year,&date.month,&date.day);
int dayOfYear = getDayOfYear(date);
cout<<"该日期是该年的第"<<dayOfYear<<"天"<<endl;
return 0;
}
```
首先定义了一个结构体类型 `Date`,包含年、月、日三个字段。
然后定义了函数 `isLeapYear`,用于判断某个年份是否是闰年。根据闰年的定义,能被4整除但不能被100整除的年份为闰年,或者能被400整除的年份也为闰年。
接着定义了函数 `getDayOfYear`,用于计算某个日期在该年中的天数。此函数先定义了一个数组 `daysInMonth`,用于存储每个月的天数,注意二月份的天数需要根据是否是闰年来判断。然后根据给定日期的月份,循环累加天数,最后加上日期中的天数即可。
在 `main` 函数中,首先读入日期,并调用 `getDayOfYear` 函数计算出该日期在该年中的天数,并输出结果。
阅读全文