package com.sammery.testDays;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @Author:sammery
* @Discryption:
* @Date: Created in 13:13 2020/12/1
* @Modified By:
*/
public class GetDaysTest {
public static void main(String[] args) {
String dateStr1 = "2019-12-01 00:00:00";//星期一
String dateStr2 = "2020-12-01 19:52:17";
String dateFormat = "yyyy-MM-dd HH:mm:ss";
int days = getDays(dateStr1, dateStr2, dateFormat);
System.out.println(dateStr1+"到"+dateStr2+"已经过去了"+days+"天了!!");
}
public static int getDays(String dateStr1, String dateStr2, String dateFormat){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormat);
Date date1 = null;
Date date2 = null;
try {
date1 = simpleDateFormat.parse(dateStr1);
date2 = simpleDateFormat.parse(dateStr2);
} catch (ParseException e) {
e.printStackTrace();
}
String year1 = String.format("%tY", date1);
String mon1 = String .format("%tm", date1);
String day1 = String .format("%td", date1);
int y1 = Integer.valueOf(year1);
int m1 = Integer.valueOf(mon1);
int d1 = Integer.valueOf(day1);
int days1 = getRecentYearDays(y1, m1, d1);
System.out.println(days1);
String year2 = String.format("%tY", date2);
String mon2 = String .format("%tm", date2);
String day2 = String .format("%td", date2);
int y2 = Integer.valueOf(year2);
int m2 = Integer.valueOf(mon2);
int d2 = Integer.valueOf(day2);
int days2 = getRecentYearDays(y2, m2, d2);
System.out.println(days2);
int count = 0;
for (int i = y1;i<y2;i++){
if((i%4==0 && i%100!=0) || i%400==0){
count+=366;
}else{
count+=365;
}
}
count = count + days2 - days1 + 1;
return count;
}
public static int getRecentYearDays(int y,int m,int d){
int count = 0;
switch(m-1){
case 1:count+=31;break;
case 2:count+=31+28;break;
case 3:count+=31+28+31;break;
case 4:count+=31+28+31+30;break;
case 5:count+=31+28+31+30+31;break;
case 6:count+=31+28+31+30+31+30;break;
case 7:count+=31+28+31+30+31+30+31;break;
case 8:count+=31+28+31+30+31+30+31+31;break;
case 9:count+=31+28+31+30+31+30+31+31+30;break;
case 10:count+=31+28+31+30+31+30+31+31+30+31;break;
case 11:count+=31+28+31+30+31+30+31+31+30+31+30;break;
}
if (((y%4==0 && y%100!=0) || y%400==0) && m>2)
count++;
return count+d;
}
}
Java得到某一日期到另一日期的天数
最新推荐文章于 2023-05-12 15:13:07 发布