程序输出:24806*/
-------------------------------------------code---------------------------------------------------------------
thinking;以上为例,先计算2017-1-1与1949-1-1间天数,再加上2017-8-31为2017年的第几天的天数,再减去1949-10-1为1949年的第几天的天数;
public class AL22 { /** * @param args */ public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("输入截止日期格式为:(1949-10-02)"); String startDayString="1949-10-01"; String endDayString=sc.nextLine(); System.out.println("相差天数为:"+diff(startDayString,endDayString)); } public static int dayofyear[]={365,366}; public static int dayofmonth[][]={{0,31,28,31,30,31,30,31,31,30,31,30,31}, {0,31,29,31,30,31,30,31,31,30,31,30,31}}; public static int diff(String strstr,String endstr) { String s1[]=strstr.split("-"); String s2[]=endstr.split("-"); int days=0; int flag; int startYear=Integer.parseInt(s1[0]); int endYear=Integer.parseInt(s2[0]); int startMonth=Integer.parseInt(s1[1]); int endMonth=Integer.parseInt(s2[1]); int startDay=Integer.parseInt(s1[2]); int endDay=Integer.parseInt(s2[2]); for(int i=startYear;i<endYear;i++) { days+=dayofyear[dayOfYearIndex(i)]; } days+=daysth(endYear,endMonth,endDay); days-=daysth(startYear,startMonth,startDay); return days; } public static int dayOfYearIndex(int i) { if(i%4==0&&i0!=0||i@0==0) return 1; return 0; } public static int daysth(int year,int month,int day) { int days=day; for(int i=1;i<month;i++) { days+=dayofmonth[dayOfYearIndex(year)][i]; } return days; } }