我想要用java写求任意两个日期之间的天数可是一直写不出来求求大佬们看看qaq!!

qq_46432145 2020-02-28 07:21:46
package cn.cqsw;

import java.util.Scanner;

public class java4 {

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
System.out.println("请输入想算距离的两年");
System.out.println("输入第一年的年份");
int nian=sc.nextInt();
System.out.println("输入第一年的月份");
int yue=sc.nextInt();
System.out.println("数日第一年的号数");
int ri=sc.nextInt();
System.out.println("输入第二年的年份");
int nian1=sc.nextInt();
System.out.println("输入第二年的月份");
int yue1=sc.nextInt();
System.out.println("数日第二年的号数");
int ri1=sc.nextInt();
int sum=0;
sum=sum+ri1+ri;
for (int i =1; i <yue; i++) {
switch(i){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
sum+=31;
break;
case 4:
case 6:
case 9:
case 11:
sum+=30;
break;
case 2:
if(nian%4==0 && nian%100!=0 || nian%400==0){
sum+=29;
}else{
sum+=28;
}
}
if(nian%4==0&&nian%100!=0||nian%400==0){
sum=365-sum;
}else{
sum=366-sum;
}
for (int i1 =1; i1 <yue1; i1++) {
switch(i1){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
sum+=31;
break;
case 4:
case 6:
case 9:
case 11:
sum+=30;
break;
case 2:
if(nian1%4==0 && nian1%100!=0 || nian1%400==0){
sum+=29;
}else{
sum+=28;
}
}

}
}
for (int i = nian; i < nian1; i++) {
if(i%4==0 && i%100!=0 || i%400==0){
sum+=366;
}else{
sum+=365;
}
}
System.out.println(sum);
}
}


...全文
132 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
	public static long getDifferentDay(String day1, String day2) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
return (simpleDateFormat.parse(day2).getTime() - simpleDateFormat.parse(day1).getTime()) / 1000;
} catch (ParseException e) {
log.error(e.getMessage(), e);
return 0;
}
}

public static String getFolderNameSuffix() {
return getCurrentTimeStr("yyyyMM");
}
moyuan123 2020-02-29
  • 打赏
  • 举报
回复
//开始时间
Date date=new Date();
long start_time=date.getTime();
线程等2天
Thread.sleep(1000*60*60*24*2);
Date endDate=new Date();
long end_time=endDate.getTime();
//计算相差毫秒数
long sp=endTime-startTime;
//计算天
int day=sp/1000/60/60/24;
一只三黄鸡 2020-02-29
  • 打赏
  • 举报
回复
直接转换成毫秒,然后减一下再取绝对值(这样小的也可以减大的,无需判断时间大小)。然后得到的值/1000/24/60/60就是天数(记得取整)。可能不是最好的方法,但是一定好理解
qq_46432145 2020-02-29
  • 打赏
  • 举报
回复
引用 2 楼 一只三黄鸡的回复:
直接转换成毫秒,然后减一下再取绝对值(这样小的也可以减大的,无需判断时间大小)。然后得到的值/1000/24/60/60就是天数(记得取整)。可能不是最好的方法,但是一定好理解
啊 听不懂 好高深
qq_46432145 2020-02-29
  • 打赏
  • 举报
回复
引用 1 楼 qybao的回复:
不用那么麻烦,用两个Calendar,算一下它们的日数差就可以了
我们现在只学了if for 循环 害 能不能教教我怎么写🙈
qybao 2020-02-28
  • 打赏
  • 举报
回复
不用那么麻烦,用两个Calendar,算一下它们的日数差就可以了

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧