java经典算法四十题
【程序14】题目:输入某年某月某日,判断这一天是这一年的第几天?
1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一
天。
import java.util.*; public class test { public static void main (String[]args){ int day=0; int month=0; int year=0; int sum=0; int leap;
System.out.print("请输入年,月,日\n");
Scanner input = new Scanner(System.in);
year=input.nextInt();
month=input.nextInt();
day=input.nextInt();
switch(month) /*先计算某月以前月份的总天数*/
{case 1:
sum=0;break; case 2:
sum=31;break; case 3:
sum=59;break; case 4:
sum=90;break; case 5:
sum=120;break; case 6:
sum=151;break; case 7:
sum=181;break; case 8:
sum=212;break; case 9:
sum=243;break; case 10:
sum=273;break; case 11:
sum=304;break; case 12:
sum=334;break; default:
System.out.println("data error");break;
}
sum=sum+day; /*再加上某天的天数*/
if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/
elseleap=1;
leap=0;
if(leap==1 && month>2)/*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
System.out.println("It is the the day:"+sum);
}
}