当前位置:首页 C++ > 正文

c++输入年月日,判断是这年的第几天

作者:野牛程序员:2023-08-11 17:22:42 C++阅读 2927

下面是一个示例程序,展示了如何使用C++来根据输入的年、月、日来判断是这一年的第几天:

#include <iostream>

bool isLeapYear(int year) {
    return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}

int main() {
    int year, month, day;
    
    std::cout << "请输入年份: ";
    std::cin >> year;

    std::cout << "请输入月份: ";
    std::cin >> month;

    std::cout << "请输入日期: ";
    std::cin >> day;

    int daysInMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

    if (month < 1 || month > 12 || day < 1 || day > daysInMonth[month - 1]) {
        std::cout << "输入的日期无效" << std::endl;
        return 1;
    }

    if (isLeapYear(year) && month > 2) {
        ++day;
    }

    int dayOfYear = day;
    for (int i = 0; i < month - 1; ++i) {
        dayOfYear += daysInMonth[i];
    }

    std::cout << year << "年" << month << "月" << day << "日是这一年的第 " << dayOfYear << " 天" << std::endl;

    return 0;
}

在这个示例中,首先定义了一个 isLeapYear 函数,用于判断是否为闰年。然后,从用户输入获取年、月、日,并根据输入的日期计算出是这一年的第几天。需要注意的是,根据是否为闰年来判断二月的天数。

请注意,这个示例仅适用于公历,对于其他历法(例如农历)可能需要更复杂的算法。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击