本帖最后由 我是你岁哥❤环 于 2016-6-12 21:58 编辑
- <div class="blockcode"><blockquote>
- /*
- 输入某年某月某日,判断它是这一年的第几天?
-
- 思路:
- 1.定义年月日 year, month, day 分别存储输入的年月日
- 2.根据输入的年份year,判断是不是闰年,如果是闰年,2月份是29天,平年是28天
- 3.判断这一年的第几天就是之前所有月份,(month-1)个月里的每个月的天数,循环累加,然后再加上这个day
- 判断是不是闰年的两个条件: 1、能被4整除但不能被100整除
- 2、能被400整除
- */
- import java.util.Scanner;
- class Test {
- public static void main(String[] args) {
-
- Scanner sc = new Scanner(System.in);
- int year = 0;
- int month = 0;
- int day = 0;
- boolean flag = false; //定义标记位,false表示输入日期没有错误
- int count = 0;
- int dayOfMonth = 0;
- do {
- System.out.println("请输入年份:");
- year = sc.nextInt();
-
- System.out.println("请输入月份:");
- month = sc.nextInt();
-
- System.out.println("请输入日期:");
- day = sc.nextInt();
- //简单验证一下
- if (year<=0 || month<=0 || month >12 || day<=0 || day>31) {
- System.out.println("您输入的日期有误,请重新输入");
- flag = true; //重新定义标记位,true表示输入日期错误
- }
- }
- while (flag);
- //(month-1)个月里的每个月的天数,循环累加
- for (int i=0; i<month; i++) {
- switch (i) {
- case 1:
- case 3:
- case 5:
- case 7:
- case 8:
- case 10:
- case 12:
- dayOfMonth = 31;
- break;
- case 4:
- case 6:
- case 9:
- case 11:
- dayOfMonth = 30;
- break;
- case 2:
- if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0 ) {
- dayOfMonth = 29;
- } else {
- dayOfMonth = 28;
- }
- break;
- }
- count = count + dayOfMonth;
- }
- System.out.println("这是一年中的第 " + (count+day) + " 天");
- }
- }
复制代码
|