【程序 14 求日期】
题目:输入某年某月某日,判断这一天是这一年的第几天?
程序分析:以 3 月 5 日为例,应该先把前两个月的加起来,然后再加上 5 天即本年的第几天,特殊情况,
闰年且输入月份大于 3 时需考虑多加一天。
源码:
package com.homework.test; import java.util.*; /* 【程序 14 求日期】 题目:输入某年某月某日,判断这一天是这一年的第几天? 程序分析:以 3 月 5 日为例,应该先把前两个月的加起来,然后再加上 5 天即本年的第几天,特殊情况, 闰年且输入月份大于 3 时需考虑多加一天。 */ public class Test14 { public static void main(String [] args){ Scanner scan = new Scanner(System.in).useDelimiter("\D"); //匹配非数字 System.out.println("请输入日期(年-月-日):"); int year = scan.nextInt(); int month = scan.nextInt(); int date = scan.nextInt(); scan.close(); System.out.println("该天是本年中的第"+fun(year,month,date)+"天"); } public static int fun(int Y,int M, int D){ int n = 0; int[] month_day = new int[]{31,28,31,30,31,30,31,31,30,31,30,31}; if ((Y % 400 == 0) || ((Y % 4 == 0) && (Y % 100 != 0))) month_day[1] = 29; for (int i=0; i<M; i++){ n += month_day[i]; } return n+D; } }