题目:输入某年某月某日,判断这一天是这一年的第几天?
程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
程序设计:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
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))/*判断是不是闰年*/ leap=1; else leap=0; if(leap==1 && month>2)/*如果是闰年且月份大于2,总天数应该加一天*/ sum++; System.out.println( "It is the the day:" +sum); } } |