使用c++使用for循环输入年月日输出一年中的第几天
时间: 2024-11-22 18:34:17 浏览: 7
在C++中,你可以使用for循环结合日期计算规则(例如:闰年的处理和每个月天数的判断)来计算给定年月日是一年中的第几天。以下是一个简单的示例代码:
```cpp
#include <iostream>
int daysInMonth(int month, int year) {
switch(month) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
return 31;
case 4: case 6: case 9: case 11:
return 30;
case 2: // 考虑闰年
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
return 29;
} else {
return 28;
}
default:
return -1; // 输入错误,返回一个非法值
}
}
int main() {
int year, month, day;
std::cout << "请输入年、月、日(格式:yyyy mm dd):" << std::endl;
std::cin >> year >> month >> day;
int totalDays = 0;
for (int i = 1; i < month; ++i) {
totalDays += daysInMonth(i, year);
}
totalDays += day;
if (month == 1 && day > 28 && isLeapYear(year)) { // 如果是二月且输入的天数大于28并且是闰年
totalDays++; // 由于闰年的二月有29天
}
std::cout << "该年份的" << month << "/" << day << "是当年的第" << totalDays << "天。" << std::endl;
return 0;
}
bool isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
阅读全文