DEV c++编写从键盘输入一个年份year和月份month,输出该月有多少天(考虑闰年)。
时间: 2023-05-21 17:01:27 浏览: 123
以下是 DEV C 的代码:
```
#include <stdio.h>
int main() {
int year, month, days;
printf("请输入年份:");
scanf("%d", &year);
printf("请输入月份:");
scanf("%d", &month);
if (month == 2) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
days = 29;
} else {
days = 28;
}
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
days = 30;
} else {
days = 31;
}
printf("%d 年 %d 月有 %d 天\n", year, month, days);
return 0;
}
```
相关问题
dev c++按年/月/日的格式输入一个日期,按该格式输出该日期的下一天 代码示例
在Dev C++中,你可以使用`<ctime>`库来进行日期操作。以下是一个简单的代码示例,它将提示用户输入一个日期,然后计算并输出下一天:
```cpp
#include <iostream>
#include <ctime>
void inputDate(int& day, int& month, int& year) {
std::cout << "请输入年、月、日(格式:YYYY/MM/DD): ";
std::cin >> year >> month >> day;
}
int main() {
int day, month, year;
struct tm date = {0};
// 输入日期
inputDate(day, month, year);
date.tm_mday = day; // 存储输入的天数
date.tm_mon = month - 1; // 月份从0开始计数,所以减一
date.tm_year = year - 1900; // 对于tm_year,通常以1900为基准
// 设置当前时间的其他部分
time_t raw_time = time(0); // 获取当前时间
localtime_s(&date, &raw_time);
// 计算下一天
++date.tm_mday;
// 如果超过当月天数,则跳到下个月第一天
if (date.tm_mday > days_in_month(year, month)) {
date.tm_mday = 1;
++date.tm_mon;
}
// 如果一年最后一个月已经是12月,加一整年
while(date.tm_mon == 12 && date.tm_mday > days_in_month(year + 1, 1)) {
date.tm_mon = 0;
++year;
}
// 格式化并输出结果
char buffer[25];
strftime(buffer, sizeof(buffer), "%Y/%m/%d", &date);
std::cout << "下一天的日期是: " << buffer << std::endl;
return 0;
}
// 辅助函数获取给定年份和月份的天数
int days_in_month(int year, int month) {
return (month == 2 && is_leap_year(year)) ? 29 : (month == 4 || month == 6 || month == 9 || month == 11) ? 30 : 31;
}
// 判断是否是闰年
bool is_leap_year(int year) {
return (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
}
```
这个程序首先定义了几个辅助函数,如输入日期、判断是否为闰年以及获取某个年月的天数。主函数中先获取用户输入的日期,然后通过递增`tm_mday`并处理可能出现的月份变化,得到下一天的日期。
用dev c++建立一个程序:从键盘上输入年月日,判断是这年的第几天
在Dev C++中创建一个简单的程序来计算给定日期是一年中的第几天,你可以按照以下步骤编写:
1. 首先,你需要包含必要的头文件,如`iostream`(用于输入/输出)和`ctime`(处理时间和日期)。
```cpp
#include <iostream>
#include <ctime>
```
2. 定义一个函数来获取给定日期是一年中的天数。这个函数可以接收年、月和日作为参数,并利用`mktime`和`difftime`函数来计算。
```cpp
int getDayOfYear(int year, int month, int day) {
struct tm date = {0};
date.tm_year = year - 1900; // 减去偏移量
date.tm_mon = month - 1;
date.tm_mday = day;
time_t t = mktime(&date);
time_t start_of_year = mktime(&({{year, 1, 1, 0, 0, 0, 0, 0, 0}}));
return static_cast<int>(difftime(t, start_of_year) + 1);
}
```
3. 在主函数`main()`中,提示用户输入年、月、日,然后调用上述函数并输出结果。
```cpp
int main() {
int year, month, day;
std::cout << "请输入年份: ";
std::cin >> year;
std::cout << "请输入月份(1-12): ";
std::cin >> month;
std::cout << "请输入日期(1-31): ";
std::cin >> day;
if (month > 12 || day > getDaysInMonth(year, month)) { // 检查输入是否有效
std::cerr << "无效的日期。\n";
return 1;
}
int days_in_year = getDayOfYear(year, month, day);
std::cout << "该日期是一年中的第" << days_in_year << "天。\n";
return 0;
}
// 辅助函数,获取给定月份有多少天
int getDaysInMonth(int year, int month) {
switch (month) {
case 2: {
if (is_leap_year(year)) return 29;
else return 28;
}
case 4: case 6: case 9: case 11: return 30;
default: return 31;
}
}
bool is_leap_year(int year) {
return year % 4 == 0 && (year % 100 != 0 || year % 400 == 0);
}
```
4. 编译并运行你的程序,注意输入的日期有效性检查(比如闰年二月有29天)。
阅读全文
相关推荐














