计算任意一天距1949年10月1日的天数
/** * @version * @author JavaHanlei * 计算任意一天距1949年10月1日的天数; * */
import java.util.Scanner;
public class Main { public static void main(String args[]){ int sum =0; int ren[] = {31,29,31,30,31,30,31,31,30,31,30,31}; //制定闰年每个月的天数数组 int ping[] = {31,28,31,30,31,30,31,31,30,31,30,31}; //制定平年每个
Scanner sc = new Scanner (System.in); String st = sc.nextLine(); String [] s = st.split("-"); //对输入的字符串按照“-”分割成字符串数组 int year = Integer.parseInt(s[0]); int mouth = Integer.parseInt(s[1]); int date = Integer.parseInt(s[2]); if(year>=1949){ //当year大于1949时的天数算法 for(int i=1949; i<year; i++){ sum = sum + (PingOrRen(i)?366:365); } int [] y = PingOrRen(year)?ren:ping; for(int i=0; i<mouth-1; i++){ sum += y[i]; } sum = Math.abs(sum+date-274); }else{ //当year小于1949时的天数算法 for(int i = year+1; i<1949; i++){ sum = sum + (PingOrRen(i)?366:365); } int [] y = PingOrRen(year)?ren:ping; for(int i=mouth-1; i<12; i++){ sum += y[i]; } sum = sum - date + 274 ; } System.out.println(sum); } public static boolean PingOrRen(int year){ //闰年平年的判断 if(year%4==0 && year%100!=0 || year%400==0) return true; else return false; }
}
运行结果: 1949-10-3 2