求两个日期之间相隔的天数
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;
}
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;
}
相关文章推荐
- 输入两个日期(年 月 日),求两个日期之间相隔的天数
- C#中求两个日期之间相隔的天数
- c#(asp.net) 如何计算两个日期之间相隔天数
- 怎样计算两个日期之间相隔的天数,如2005-5-6和2004-6-9
- 计算两个日期之间相隔的天数
- java计算两个日期之间相差天数和相隔天数详解
- java计算两个日期之间相隔的天数
- 计算两个日期之间相隔的天数
- 如何计算两个日期之间相隔的天数?calendar的用法
- 计算任意两个日期之间相隔的天数以及年数
- 计算出任意两个日期之间相隔的天数
- [java日期处理] 两个日期之间相隔天数。
- 计算两个日期之间相隔天数
- 日期与时间处理三(输入两个日期(年 月 日),求两个日期之间相隔的天数)
- calendar 计算两个日期之间相隔的天数
- javascript比较两个日期之间相隔天数
- 求两个日期之间相隔的天数
- fmt标签如何计算两个日期之间相隔的天数
- C/C++完成两个日期之间相隔天数的计算
- 求两个日期之间相隔的天数: