任务描述
本关任务:根据给定的年份和月份,获取该月份的天数。
提示:在求二月份的天数时,需要判断年份是否是闰年。闰年的条件是,年份是否能够被 400 整除,或者年份能够被 4 整除但是不能被 100 整除。
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。
参考答案
import java.util.Scanner;
/**
* 任务:根据给定的年份和月份,获取该月份的天数。
*/
public class ApplicationTest {
/**
* 请在下面的 Begin - End 之间按照注释中给出的提示编写正确的代码。
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int year = scanner.nextInt();
int month = scanner.nextInt();
int day = 0;
/********** Begin **********/
// 第一步:判断变量 month 是否为 1、3、5、7、8、10、12 内的月份,如果是,则将数值 31 赋值给变量 day
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
day = 31;
}
// 第二步:判断变量 month 是否为 4、6、9、11 内的月份,如果是,则将数值 30 赋值给 day
else if (month == 4 || month == 6 || month == 9 || month == 11) {
day = 30;
}
// 第三步:如果以上条件都不满足,则进入最后一种情况
else {
// 第四步:判断是否是闰年,是闰年,则将数值 29 赋值给 day;反之,则将数值 28 赋值给 day
if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0) {
day = 29;
} else {
day = 28;
}
}
/********** End **********/
System.out.print(year + "年" + month + "月有" + day + "天");
}
}
使用switch
import java.util.Scanner;
/**
* 任务:根据给定的年份和月份,获取该月份的天数。
*/
public class ApplicationTest {
/**
* 请在下面的 Begin - End 之间按照注释中给出的提示编写正确的代码。
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int year = scanner.nextInt();
int month = scanner.nextInt();
int day = 0;
/********** Begin **********/
// 第一步:判断变量 month 是否为 1、3、5、7、8、10、12 内的月份,如果是,则将数值 31 赋值给变量 day
switch(month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day =31;
break;
// 第二步:判断变量 month 是否为 4、6、9、11 内的月份,如果是,则将数值 30 赋值给 day
case 4:
case 6:
case 9:
case 11:
day =30;
break;
// 第三步:如果以上条件都不满足,则进入最后一种情况
case 2:
if(year%400==0 ||year%4==0&&year%100!=0) {
day= 29;
}else {
day =28;
}
}
// 第四步:判断是否是闰年,是闰年,则将数值 29 赋值给 day;反之,则将数值 28 赋值给 day
/********** End **********/
System.out.print(year + "年" + month + "月有" + day + "天");
}
}