编写程序,从键盘上输入年份和月份,计算并输出这一年的这一月共有多少天
时间: 2023-04-29 18:03:24 浏览: 122
下面是一个简单的 Python 代码示例:
```
year = int(input("请输入年份: "))
month = int(input("请输入月份: "))
if month in (1, 3, 5, 7, 8, 10, 12):
days = 31
elif month in (4, 6, 9, 11):
days = 30
elif year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
days = 29
else:
days = 28
print("这个月共有 {} 天".format(days))
```
相关问题
编写程序,从键盘上输入年份和月份,计算并输出这一年的这一月共有多少天。
### 回答1:
```python
year = int(input("请输入年份: "))
month = int(input("请输入月份: "))
if month in [1, 3, 5, 7, 8, 10, 12]:
days = 31
elif month in [4, 6, 9, 11]:
days = 30
elif month == 2:
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
days = 29
else:
days = 28
else:
print("输入错误")
exit()
print("这个月共有%d天" % days)
```
### 回答2:
需求分析:
此程序需要接收两个输入,即年份和月份,然后计算该年该月有多少天,并输出结果。
算法实现:
1. 从键盘读入年份和月份。
2. 判断年份是否为闰年,闰年有366天,平年有365天。若该年份能被4整除但不能被100整除,或者能被400整除,就是闰年;否则为平年。
3. 根据月份判断该月的天数,月份从1到12,其中4, 6, 9, 11月有30天,2月与其他月份不同,需特别注意。若是闰年的2月有29天,平年的2月有28天;其他月份有31天。
4. 输出该年该月的天数。
注:闰年判断方法中容易出错,需要注意每种情况的判断语句的书写正确性。
代码实现:
代码实现中,判断闰年的函数is_leap_year()返回值为bool类型,若是闰年返回true,否则返回false。
输入年份和月份:
cout<<"请输入年份:";
cin>>year;
cout<<"请输入月份:";
cin>>month;
判断是否为闰年:
bool is_leap_year(int year)
{
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
return true;
else
return false;
}
计算该月份的天数:
//31天的月份
if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
day = 31;
//30天的月份
else if(month == 4 || month == 6 || month == 9 || month == 11)
day = 30;
//特殊的2月份
else if(month == 2)
{
if(is_leap_year(year))
day = 29;
else
day = 28;
}
输出结果:
cout<<year<<"年"<<month<<"月共有"<<day<<"天"<<endl;
### 回答3:
题目要求编写程序,从键盘上输入年份和月份,计算并输出这一年的这一月共有多少天。首先,需要对闰年和平年进行区分,然后再考虑每个月份有多少天。
一年中的天数可以分为平年和闰年两种情况。平年有365天,而闰年则有366天。在公历纪年法中,如下规定的年份是闰年:
1. 能被4整除但不能被100整除的年份是闰年。
2. 能被400整除的是闰年。
根据这个规定,我们可以通过判断输入的年份是否是闰年来计算这一年的天数。代码如下:
```
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入年份:");
int year = scanner.nextInt();
System.out.println("请输入月份:");
int month = scanner.nextInt();
int days = 0;
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
// 闰年
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 2:
days = 29;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
default:
System.out.println("输入的月份不正确!");
break;
}
} else {
// 平年
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 2:
days = 28;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
default:
System.out.println("输入的月份不正确!");
break;
}
}
System.out.println(year + "年" + month + "月共有" + days + "天。");
}
}
```
程序首先使用Scanner类获取从键盘上输入的年份和月份。然后,程序根据输入的年份是否是闰年,进行相应的计算。如果是闰年,就按照闰年的天数计算;否则,就按照平年的天数计算。最后,输出计算得出的天数。
代码使用了switch语句来进行计算,提高了代码的可读性和可维护性。如果输入的月份不正确,程序会输出一个提示信息。
编写程序,从键盘上输入年份和月份,计算并输出这一年的这一月共有多少天。C语言
下面是一个使用C语言编写的程序,用于根据输入的年份和月份计算并输出该年该月的天数:
```c
#include <stdio.h>
int main() {
int year, month, days;
printf("请输入年份:");
scanf("%d", &year);
printf("请输入月份:");
scanf("%d", &month);
// 判断闰年
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
// 闰年的情况
switch (month) {
case 2:
days = 29;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
default:
days = 31;
break;
}
} else {
// 非闰年的情况
switch (month) {
case 2:
days = 28;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
default:
days = 31;
break;
}
}
printf("%d年%d月共有%d天。\n", year, month, days);
return 0;
}
```
在程序中,首先通过`scanf`函数获取用户输入的年份和月份,分别存储在`year`和`month`变量中。然后使用条件判断来判断输入的年份是否为闰年,如果是闰年,则根据月份分别设置`days`变量的值为对应的天数;如果不是闰年,则根据月份同样设置`days`变量的值。最后使用`printf`函数输出结果。
需要注意的是,上述代码中没有对用户输入进行验证和错误处理,实际应用中需要考虑对输入进行合法性检查。
阅读全文