C++编写程序,从键盘输入年月日,判断是当年的第几天
作者:野牛程序员:2023-06-20 08:17:34 C++阅读 2728
以下是一个使用C++编写的程序,它接受从键盘输入的年、月和日,并判断是当年的第几天:
#include <iostream> bool isLeapYear(int year) { return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0); } int getDayOfYear(int year, int month, int day) { int daysInMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 检查是否是闰年,并修改二月的天数 if (isLeapYear(year)) { daysInMonth[1] = 29; } int dayOfYear = 0; for (int i = 0; i < month - 1; ++i) { dayOfYear += daysInMonth[i]; } dayOfYear += day; return dayOfYear; } int main() { int year, month, day; std::cout << "请输入年份:"; std::cin >> year; std::cout << "请输入月份:"; std::cin >> month; std::cout << "请输入日期:"; std::cin >> day; int dayOfYear = getDayOfYear(year, month, day); std::cout << year << "年" << month << "月" << day << "日是当年的第 " << dayOfYear << " 天。" << std::endl; return 0; }
这个程序首先定义了一个isLeapYear
函数来判断是否是闰年。然后,getDayOfYear
函数根据每个月的天数计算出给定日期是当年的第几天。最后,在main
函数中,程序会提示用户输入年份、月份和日期,并调用getDayOfYear
函数来获取结果,并将结果输出到屏幕上。
请注意,此程序假设用户提供的输入是有效的,即不会输入无效的日期,如不存在的日期或月份超出范围。在实际应用中,你可能需要添加额外的输入验证来确保输入的有效性。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
