2021-04-03 流程控制的逻辑训练任务(分支+循环综合) 2
计算该年该月天数 一年中有 12 个月,而每个月的天数是不一样的。其中大月 31 天,分别为 1,3,5,7,8,10,12 月,小月 30 天,分别 为 4,6,9,11 月。还有二月比较特殊,平 年的二月只有 28 天,而闰年的二月有 29 天,由用户在控制台输入年份和月份, 程序计算该年该月的天数。
代码如下:
import java.util.Scanner;
public class Class4_6 {
public static void main(String[] args) {
int inputCount = 2;//输入次数
int year = 0;//年份
int month = 0;//月份
int day = 0;//天数
int leapYearFlag = 0;//闰年标记
do {
Scanner input = new Scanner(System.in);//接收输入数据
if(inputCount==2) {System.out.println("请输年份");year = inputData(input);}//赋值年份数值
if(inputCount==1) {System.out.println("请输入月份");month = inputData(input);}//赋值月份数值
inputCount--;
}while(inputCount>0);
//判断根据年份天数
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) {
day = 31;//大月有31天
System.out.println(year+"年的"+month+"月有"+day+"天");
}else if(month==4||month==6||month==9||month==11) {
day = 30;//小月有30天
System.out.println(year+"年的"+month+"月有"+day+"天");
}else if(month==2){
if(judgeYear(year,leapYearFlag)==1) {
day = 29;//闰年2月有29天
System.out.println(year+"年的"+month+"月有"+day+"天");
}else {
day = 28;//平年2月有28天
System.out.println(year+"年的"+month+"月有"+day+"天");
}
}else {
System.out.println("你输入的月份有误");
}
}
//判断闰年
public static int judgeYear(int year,int leapYearFlag) {
if(year%4==0&&year%100!=0) {
leapYearFlag = 1;
}else if(year%400==0) {
leapYearFlag = 1;
}else {
leapYearFlag = 0;
}
return leapYearFlag;
}
//判断输入的数据类型
public static int inputData(Scanner input) {
int data = 0;
if(input.hasNextInt()) {
data = input.nextInt() ;//赋值
}else {
System.out.println("你输入的数据有误");
}
return data;
}
}
运行结果: