【程序 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;
}
}