c++实现输入天数转年月日(起始日期为1900.1.1)
时间: 2024-01-28 12:05:51 浏览: 104
以下是一个基于 C++ 的实现,可以将输入的天数转换为年月日(起始日期为1900.1.1):
```c++
#include <iostream>
using namespace std;
int main() {
int days;
cout << "请输入天数: ";
cin >> days;
int year = 1900;
int month = 1;
int day = 1;
int days_in_month[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
while (days > 0) {
// 计算当前月份的天数
int days_in_current_month = days_in_month[month - 1];
// 如果是闰年并且是2月份,则天数加1
if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) && month == 2) {
days_in_current_month++;
}
// 如果天数不够,则进入下一个月
if (days_in_current_month - day + 1 > days) {
day += days;
days = 0;
}
// 否则进入下一个月,并更新天数
else {
days -= days_in_current_month - day + 1;
day = 1;
month++;
// 如果月份超过12,则进入下一年
if (month > 12) {
month = 1;
year++;
}
}
}
cout << "日期为:" << year << "年" << month << "月" << day << "日" << endl;
return 0;
}
```
例如,输入 `15000`,输出的结果为:
```
请输入天数: 15000
日期为:2040年3月11日
```
需要注意的是,这个算法并没有考虑闰秒、闰分、闰时等特殊情况,只是一个简单的实现。
阅读全文