题目:输入某年某月某日,判断这一天是这一年的第几天?
以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
public class Test14 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("请分别输入所要查询的年月日:");
int year = s.nextInt();
int month = s.nextInt();
int days = s.nextInt();
//方法一
boolean isLeapyear = false; //定义布尔型变量判断是否为闰年
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
isLeapyear = true;
}
switch(month) {
case 1:
date(0, days);
break;
case 2:
date(31, days);
break;
case 3:
if(isLeapyear) {
date(60, days);
}else {
date(59, days);
}
break;
case 4:
if(isLeapyear) {
date(91, days);
}else {
date(90, days);
}
break;
case 5:
if(isLeapyear) {
date(121, days);
}else {
date(120, days);
}
break;
case 6:
if(isLeapyear) {
date(152, days);
}else {
date(151, days);
}
break;
case 7:
if(isLeapyear) {
date(182, days);
}else {
date(181, days);
}
break;
case 8:
if(isLeapyear) {
date(213, days);
}else {
date(212, days);
}
break;
case 9:
if(isLeapyear) {
date(244, days);
}else {
date(243, days);
}
break;
case 10:
if(isLeapyear) {
date(274, days);
}else {
date(273, days);
}
break;
case 11:
if(isLeapyear) {
date(305, days);
}else {
date(304, days);
}
break;
case 12:
if(isLeapyear) {
date(335, days);
}else {
date(334, days);
}
break;
default:
}
static void date(int sum,int days) {
System.out.println("这是该年的第" + (days + sum) + "天");
}
}
public class Test14 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("请分别输入所要查询的年月日:");
int year = s.nextInt();
int month = s.nextInt();
int days = s.nextInt();
//方法二
int[] list = {31,60,91,121,152,182,213,244,274,305,335,366};
int count = 0;
if (month == 1)
count = days;
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
if (month > 1 && month < 13)
count = list[month - 2] + days;
}else {
if (month > 1 && month < 13)
count = list[month - 2] + days - 1;
System.out.print("这是该年的第" + count + "天");
}
}
}