JAVA 基础编程练习题14 【程序 14 求日期】
发布时间:2020-12-15 05:23:52 所属栏目:Java 来源:网络整理
导读:? 14 【程序 14 求日期】 题目:输入某年某月某日,判断这一天是这一年的第几天? 程序分析:以 3 月 5 日为例,应该先把前两个月的加起来,然后再加上 5 天即本年的第几天,特殊情况, 闰年且输入月份大于 3 时需考虑多加一天。 ? package cskaoyan;public
? 14 【程序 14 求日期】 题目:输入某年某月某日,判断这一天是这一年的第几天? 程序分析:以 3 月 5 日为例,应该先把前两个月的加起来,然后再加上 5 天即本年的第几天,特殊情况, 闰年且输入月份大于 3 时需考虑多加一天。 ? package cskaoyan; public class cskaoyan14 { private static int year = 0; private static int month = 0; private static int day = 0; private static int[] leapYear = { 31,29,31,30,31 }; private static int[] commonYear = { 31,28,31 }; private int sum = 0; @org.junit.Test public void date() { java.util.Scanner in = new java.util.Scanner(System.in); year = in.nextInt(); month = in.nextInt(); day = in.nextInt(); try { if (verify(year,month,day)) { if (leapYear(year)) { for (int i = 0; i < month - 1; i++) { sum += leapYear[i]; } } else { for (int i = 0; i < month - 1; i++) { sum += commonYear[i]; } } sum += day; System.out.println(year + "年" + month + "月" + day + "日" + "是这一年的第" + sum + "天"); } } catch (Throwable e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { in.close(); } } private static boolean verify(int yaer,int month,int day) throws Throwable { if (year < 1) { throw new Exception("YEAR ERROR"); } if (month < 1 || month > 12) { throw new Exception("MONTH ERROR"); } if (day < 1 || day > 31) { throw new Exception("DAY ERROR"); } if (month == 4 || month == 6 || month == 9 || month == 11) { if (day > 30) { throw new Exception("DAY ERROR"); } } if (month == 2) { if (leapYear(year)) { if (day > 29) { throw new Exception("DAY ERROR"); } } else { if (day > 28) { throw new Exception("DAY ERROR"); } } } return true; } private static boolean leapYear(int year) { if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0 && year % 3200 != 0)) { return true; } else { return false; } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |