计算某一年两个日期相差多少天
今天写一个小编程题是"输入一个日期判断是一年中的第几天",写完之后,感觉还可以延伸出一个题目就是随便给出两个日期,计算两者相差多少天?(当然也可以有就算不是同一年,那个会在后续发出))
话不多说咱们直接上代码:
import java.util.Scanner;
public class 求出一年内两个日期的差 {
public static void main(String[] args) {
int m, n;
//此处的m是记录第一次输入是一年中的第几天,n记录的是第二次输入的是一年中的第几天,二者做差,便可以判断出相差多少天了
Scanner scanner = new Scanner(System.in);
System.out.println("请输入年份:");
int year = scanner.nextInt();
System.out.println("请输入初始月份:");
int month = scanner.nextInt();
System.out.println("请输入初始 日:");
int day = scanner.nextInt();
int sum = 0;
for (int i = 1; i < month; i++) {
int num = 0;
switch (i) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
num = 31;
break;
case 4:
case 6:
case 9:
case 11:
num = 30;
break;
case 2:
//判断是闰年还是平年,来看看二月份到底有几天?
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
num = 29;
} else {
num = 28;
}
break;
}
sum = sum + num;
}
sum = sum + day;
m = sum;
System.out.println("请输入结束月份:");
int month1 = scanner.nextInt();
System.out.println("请输入结束 日:");
int day1 = scanner.nextInt();
int sum1 = 0;
for (int i = 1; i < month1; i++) {
int num = 0;
switch (i) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
num = 31;
break;
case 4:
case 6:
case 9:
case 11:
num = 30;
break;
case 2:
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
num = 29;
} else {
num = 28;
}
break;
}
sum1 = sum1 + num;
}
sum1 = sum1 + day1;
n = sum1;
System.out.println("二者的日期相差:"+(n-m)+"天");
}
}
接下来就是测试的结果了:
可能这个小例子不太实用,相信大家总会去就算随便两个日期(不同年份)之间相差的天数吧。那么用代码实现就不会很麻烦。后续也会发布一个求随意输入两个日期,然后计算两者相差多少天,可能思路就不会和这个一样了。