package com.taxi.tx.server.controller;
import java.rmi.activation.ActivationException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.zip.DataFormatException;
/**
*
* @author Jerry
* @E-mail jerry.ma@bstek.com
* @version 2013-8-5下午5:08:45
*/
public class DateTest {
public static boolean IsStartAndEndTime(String startdate, String enddate, String date) throws Exception {
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
Date dt1 = sf.parse(startdate);
Date dt2 = sf.parse(enddate);
Date dt3 = sf.parse(date);
if (dt3.before(dt1) || dt3.after(dt2)) {
return false;
}
return true;
}
// 求2个日期的天数
public static long DateDays(String date1, String date2) throws DataFormatException, ActivationException {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
long myTime;
Date aDate2;
Date aDate;
long myTime2;
long days = 0;
try {
aDate = formatter.parse(date1);// 任意日期,包括当前日期
myTime = (aDate.getTime() / 1000);
// SimpleDateFormat formatter =new SimpleDateFormat("yyyy-MM-dd");
aDate2 = formatter.parse(date2);// 任意日期,包括当前日期
myTime2 = (aDate2.getTime() / 1000);
if (myTime > myTime2) {
days = (myTime - myTime2) / (1 * 60 * 60 * 24);
} else {
days = (myTime2 - myTime) / (1 * 60 * 60 * 24);
}
} catch (Exception e) {
e.printStackTrace();
}
return days;
}
// 求2个日期的天数
public static long DateDays2(int year1, int month1, int day1, int year2, int month2, int day2) throws DataFormatException, ActivationException {
String date1;
String date2;
date1 = year1 + "-" + month1 + "-" + day1;
date2 = year2 + "-" + month2 + "-" + day2;
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
long myTime;
Date aDate;
Date aDate2;
long myTime2;
long days = 0;
try {
aDate = formatter.parse(date1);// 任意日期,包括当前日期
myTime = (aDate.getTime() / 1000);
// SimpleDateFormat formatter =new SimpleDateFormat("yyyy-MM-dd");
aDate2 = formatter.parse(date2);// 任意日期,包括当前日期
myTime2 = (aDate2.getTime() / 1000);
if (myTime > myTime2) {
days = (myTime - myTime2) / (1 * 60 * 60 * 24);
} else {
days = (myTime2 - myTime) / (1 * 60 * 60 * 24);
}
} catch (Exception e) {
e.printStackTrace();
}
return days;
}
public static void main(String[] args) throws Exception {
// String str = String.format("%tF % <tT", System.currentTimeMillis());
// System.out.println(str);
// 日期比较
boolean b = false;
b = IsStartAndEndTime("1984-01-01", "1985-01-04", "1985-01-01 09:12:01");
if (b) {
System.out.println("在这2个日期之间 ");
} else {
System.out.println("不在 ");
}
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// sf.format(new Date());
System.out.println("------ " + sf.format(new Date()));
// 求2个日期的天数
long days = 0;
long days2 = 0;
try {
days = DateDays("2008-03-21", "2008-4-01");
days2 = DateDays2(2008, 03, 21, 2008, 4, 01);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("相差的天数" + days);
System.out.println("相差的天数: " + days2);
// 将日期变化成需要的格式
SimpleDateFormat st = new SimpleDateFormat("yyyy-MM-dd");
String Oneday = "";
Oneday = st.format(new Date());
System.out.println(Oneday);
// 计算某个日期的前一天
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
try {
Date aDate = formatter.parse(Oneday);// 任意日期,包括当前日期
long myTime = (aDate.getTime() / 1000) + 1 * 60 * 60 * 24;// -1表示前一天,+1表示后一天,依次类推
aDate.setTime(myTime * 1000);
String strDay = formatter.format(aDate);
System.out.print(strDay);
} catch (Exception e) {
e.printStackTrace();
}
}
}
java计算两日期之间的天数
最新推荐文章于 2024-06-29 03:11:20 发布