您的位置:首页 > 其它

求两个日期之间相隔的天数

2009-06-30 13:08 330 查看
1、

long tm = (Calendar.getInstance().getTimeInMillis() - date2.getTime());

int ms = (int)(tm%1000); tm /= 1000;

int sc = (int)(tm%60); tm /= 60;

int mn = (int)(tm%60); tm /= 60;

int hr = (int)(tm%24);

long dy = tm/24;

String useTime = dy+"天"+hr+"小时"+mn+"分"+sc+"."+ms+"秒";

2、 只求天数的话,用compareTo最简单了。。

把日期转化成 YYYY-MM-DD 的格式就OK

System.out.println(("2008-12-10").compareTo("2008-12-12"));

3、 public static void main(String[] args)

{

Date date = new Date();

String num = "2009-6-10";

try{

Date m_endTime = new java.text.SimpleDateFormat("yyyy-MM-dd").parse("2009-6-10");

System.out.println((date.getTime()- m_endTime.getTime())/86400000);

}catch(Exception ex){

ex.printStackTrace();

}

}

4、

select to_date(日期字段,'yyyyMMdd')-to_date(to_char(SYSDATE,'yyyyMMdd'),'yyyyMMdd') AS TS

from table1;

5、 oracle数据库

select floor(to_date('20080301','yyyymmdd')-sysdate) from dual;

6、sqlserver下: select DATEDIFF(day,getdate(),'2010-6-25')

Calendar和Date转换

7、 最好把日期格式换成Date类型的,用java提供的方法就能比较出来相差的时间了

8、 判断是否是日期的方法,日期格式 2010-6-25

public boolean isDate(String date){

//查找分隔符

int index1=Integer.parseInt(date.indexOf("-"));

//如果分隔符不存在,则不是合法的时间

if(index1==-1)

return false;

//获取时间中的年

String year=date.substring(0,index1);

//获取时间中的午剩余部分

date=date.substring(index1+1);

//查找第二个分隔符

index1=date.indexOf("-");

//如果不存在第二个分隔符,则不是合法的时间

if(index1==-1)

return false;

//获取时间中的月分

String month=date.substring(0,index1);

//获取时间中的日

String day=date.substring(index1+1);

//判断是否是数字,如果 不是,则也不是合法的时间

if(isNumber(year)&&isNumber(month)&&isNumber(day)){

//判断基本范围

if(year<1900||year>9999||month<1||month>12||day<1)

return false

//判断31天的月

if((month==1||month==3||month==5||month==7||month8||month==10||month==12)&&day>31)

return false;

//判断30天的月

if((month=4||month==6||month==9||month==11))&&day>30)

return false;

//如果是2月,判断是否是闰年

if(month==2){

if(year%400==0||(year%4==0&&year%100!=0)){

if(day>29)

return false;

}else{

if(day>28)

return false;

}

}

}else

retrun false;

return true;

}

public boolean isNumber(String num){

for(int i=0;i<num.length;i++){

//每一位都是0~9的数字,如果是第一位,则可以是“—”号

if(num.charAt(i)>='0'&&num.charAt(i)<='9'||num.charAt(i)=='-'&&i==0)

continue;

else

return false;

}

return true;

}

9、

public static void main(String[] args) throws ParseException {

String date1 = "2009-6-7";

String date2 = "2009-5-8";

long date_long1 = new SimpleDateFormat("yyyy-MM-dd").parse(date1).getTime();

long date_long2 = new SimpleDateFormat("yyyy-MM-dd").parse(date2).getTime();

if(date_long1 > date_long2){

System.out.println((date_long1 - date_long2) / 1000 / 60 / 60 / 24);

}else{

System.out.println((date_long2 - date_long1) / 1000 / 60 / 60 / 24);

}

}

10、

/**

* 获取现在时间

*

* @return 返回短时间字符串格式yyyy-MM-dd

*/

public static String getStringDateShort() {

Date currentTime = new Date();

SimpleDateFormat formatter = new SimpleDateFormat( "yyyy-MM-dd ");

String dateString = formatter.format(currentTime);

return dateString;

}

/**

* 两个时间之间的天数

*

* @param date1

* @param date2

* @return

*/

public static long getDays(String date1, String date2) {

if (date1 == null || date1.equals( " "))

return 0;

if (date2 == null || date2.equals( " "))

return 0;

// 转换为标准时间

SimpleDateFormat myFormatter = new SimpleDateFormat( "yyyy-MM-dd ");

java.util.Date date = null;

java.util.Date mydate = null;

try {

date = myFormatter.parse(date1);

mydate = myFormatter.parse(date2);

} catch (Exception e) {

}

long day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);

return day;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: