import java.util.Scanner;
import org.junit.Test;
public class tt {
/**
* 用以计算y年m1月d1日与同年的m2月d2之间的天数(m2>=m1),并打印计算结果.
* 若m1=m2且d1=d2则算1天.在闰年时,2月有29天.闰年的年号由以下方式确定:
* 该年号能被4整除但不能被100整除,或者该年号能被400整除则是闰年.
* 例:输入1997,2,27,3,10时,输出为从1997年2月27日到3月10日共有12天.
*/
boolean isleapyear;
@Test
public void test() {
// TODO Auto-generated method stub
@SuppressWarnings("resource")
Scanner ss = new Scanner(System.in);
System.out.println("请输入年份");
int y = ss.nextInt();
System.out.println("请输入月");
int m1 = ss.nextInt();
System.out.println("请输入日");
int d1 = ss.nextInt();
System.out.println("请输入另一个月");
int m2 = ss.nextInt();
System.out.println("请输入另一个日");
int d2 = ss.nextInt();
if (y % 400 == 0 || y % 4 == 0 && y % 100 != 0) {
isleapyear = true;
} else {
isleapyear = false;
}
int day = 0;// 定义一个变量来计算天数
if (m1 > m2) {
// 打印不符合要求
System.out.println("不符合要求");
} else if (m1 == m2) {
// 特殊化处理相同月份
if (d1 > d2) {
// 打印不符合要求
System.out.println("不符合要求");
} else {
day = d2 - d1 + 1;
System.out.println("相隔天数为:" + day);
}
} else {
// m1<m2
// 根据具体月份累加天数
int mmm = getDay(m1);
day = mmm - d1;
System.out.println(mmm);
for (int i = m1 + 1; i < m2; i++) {
day +=getDay(i);
}
day = day + d2 + 1;
System.out.println("相隔天数为:" + day);
}
}
// 通过月份获取天数;
public int getDay(int mounth) {
int day = 0;
switch (mounth) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
// 这些月份是31天
day = 31;
break;
case 4:
case 6:
case 9:
case 11:
// 这些月份是30天
day = 30;
break;
case 2:
// 特殊化处理是否闰年
// TODO: 自己写闰年判断方法
if (isleapyear) {
day = 29;
} else {
day = 28;
}
break;
default:
// 一般不会进到这里
break;
}
return day;
}
}