题目:
输入某年某月某日,判断这一天是这一年的第几天? 1. 程序分析:以 3 月 5 日为例,应该先把前两个月的加起来, 然后再加上 5
天即本年的第几天, 特殊情况,闰年且输入月份大于 3 时需考虑多加一天。
1 public class _014JudgmentDate {
2
3 public static void main(String[] args) {
4 while (true) {
5 days();
6 }
7 }
8
9 private static void days() {
10 int year, month, day;
11 int days = 0;
12 int feb = 28;
13
14 Scanner scanner = new Scanner(System.in);
15 System.out.println("请输入年份:");
16 year = scanner.nextInt();
17 System.out.println("请输入月份:");
18 month = scanner.nextInt();
19 System.out.println("请输入天数");
20 day = scanner.nextInt();
21
22 if (year < 0 || month < 0 || month > 12 || day < 0 || day > 31) {
23 System.out.println("请重新输入");
24 } else {
25
26 for (int i = 1; i < month; i++) {
27 switch (month) {
28 case 1:
29 days = day;
30 break;
31 case 2:
32 if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
33 feb = 29;
34 } else {
35 feb = 28;
36 }
37 days = 31 + day;
38 break;
39 case 3:
40 days = 31 + feb + day;
41 break;
42 case 4:
43 days = 31 + feb + 31 + day;
44 break;
45 case 5:
46 days = 31 + feb + 31 + 30 + day;
47 break;
48 case 6:
49 days = 31 + feb + 31 + 30 + 31 + day;
50 break;
51 case 7:
52 days = 31 + feb + 31 + 30 + 31 + 30 + day;
53 break;
54 case 8:
55 days = 31 + feb + 31 + 30 + 31 + 30 + 31 + day;
56 break;
57 case 9:
58 days = 31 + feb + 31 + 30 + 31 + 30 + 31 + 31 + day;
59 break;
60 case 10:
61 days = 31 + feb + 31 + 30 + 31 + 30 + 31 + 31 + 30 + day;
62 break;
63 case 11:
64 days = 31 + feb + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31
65 + day;
66 break;
67 case 12:
68 days = 31 + feb + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31
69 + 30 + day;
70 }
71 System.out.println(year + " 年 " + month + " 月 " + day
72 + "号是今年的第" + days + "天");
73 }
74 }
75 }
76
77 }
网友评论