定义一个方法,可以计算出两个日期之间相差多少天
例如:2015年2月17日到2015年3月29日中间一共有多少天?
import java.util.Scanner;
public class Four {
public static void main (String[] args){
Scanner input = new Scanner(System.in);
System.out.println("请输入第一个年月日");
String str1 = input.next();
System.out.println("请输入第二个年月日");
String str2 = input.next();
day(str1,str2);
}
public static int day(String s1,String s2){
String years1 = " ";
String years2 = " ";
String month1 = " ";
String month2 = " ";
String day1 =" ";
String day2 = "";
for (int i = 0; i <4 ; i++) {
years1 += s1.charAt(i);
years2 += s2.charAt(i);
}
for (int i = 5; i <7 ; i++) {
if (s1.charAt(i) != '年') {
month1 += s1.charAt(i);
}
if (s2.charAt(i) != '年') {
month2 += s2.charAt(i);
}
}
if(s1.charAt(6) != '月'){
for (int i = 8; i <10 ; i++) {
day1 += s1.charAt(i);
}
}else{
for (int i = 7; i <9 ; i++) {
day1 += s1.charAt(i);
}
}
if(s2.charAt(6) != '月'){
for (int i = 8; i <10 ; i++) {
day2 += s2.charAt(i);
}
}else{
for (int i = 7; i <9 ; i++) {
day2 += s2.charAt(i);
}
}
int years = 0;
int month = 0;
int day =0;
int SumYearDay=0;
for(int i = Integer.parseInt(years1);i<Integer.parseInt(years2);i++){
SumYearDay += (i%400==0||(i%100!=0&&i%4==0) ? 366 : 365);
}
for(int i = 1;i<=month;i++){
switch (i) {
case 2:
// 闰年二月29天,平年28天
day = years % 400 == 0 || (years % 100 != 0 && years % 4 == 0) ? 29 : 28;
break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day = 31;
break;
default:
day = 30;
}
if(i!=month){ // 条件不成立,不加
SumYearDay += day; // 用年份的总天数加上月份的总天数得出总天数
}
}
return SumYearDay;
}
}