加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 15:37:35 所属栏目:MsSql教程 来源:网络整理
导读:??? 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 );

??? 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; }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读