首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

日期比较的函数

2013-09-05 
求一个日期比较的函数比较两个时间是否大于3个小时。格式是这样的2013-8-28 11:21[解决办法]public static

求一个日期比较的函数
比较两个时间是否大于3个小时。
格式是这样的2013-8-28 11:21 
[解决办法]

public static void main(String[] args) throws Exception {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date d1 = df.parse("2013-8-28 11:21");
Date d2 = df.parse("2013-8-28 14:11");
long diff = d1.getTime() - d2.getTime();
long hour3 = diff / (1000 * 60 * 60 * 3);
if(hour3>=1
[解决办法]
hour3<=-1) {
System.out.println(">=3小时");
}else {
System.out.println("<3小时");
}
}

[解决办法]
引用:
public static void main(String[] args) throws Exception {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date d1 = df.parse("2013-8-28 11:21");
Date d2 = df.parse("2013-8-28 14:11");
long diff = d1.getTime() - d2.getTime();
long hour3 = diff / (1000 * 60 * 60 * 3);
if(hour3>=1
[解决办法]
hour3<=-1) {
System.out.println(">=3小时");
}else {
System.out.println("<3小时");
}
}
 昨晚的速度就是快
[解决办法]
网上找的。 
var date1='2012-01-21 8:2';
var date2='2012-1-2 7:20:10';
var pD=function(s){
var dt=s.split(/ /);
var d=dt[0].split(/-/);
var t;
if(dt[1]){
t=dt[1].split(/:/);
t.push(0);
t.push(0);
}else{
t=[0,0,0];
}
return new Date(d[0],d[1]-1,d[2],t[0],t[1],t[2]);
};
var pS=function(d){
var Y=d.getFullYear();
var M=d.getMonth()+1;
(M<10)&&(M='0'+M);
var D=d.getDate();
(D<10)&&(D='0'+D);


var h=d.getHours();
(h<10)&&(h='0'+h);
var m=d.getMinutes();
(m<10)&&(m='0'+m);
var s=d.getSeconds();
(s<10)&&(s='0'+s);
return Y+'-'+M+'-'+D+' '+h+':'+m+':'+s;
};
var d1=pD(date1);
var d2=pD(date2);
var s1=pS(d1);
var s2=pS(d2);
alert(s1+' '+d1.getTime()+'\n'+s2+' '+d2.getTime());
alert(s1>s2);


[解决办法]
日期比较的函数都比我闲,我还要抽空来溜达
[解决办法]
/**
 * 操作日期时间的对象
 */
var dt = {
/**
 * @see 获得当前日期
 * @param type 1为所有内容, 2为一串数字, 3为日期部分, 4为中文日期
 * @return String
 */
now : function(type) {
return dt.show(new Date(), type);
},

/**
 * @see 显示日期
 * @param date 日期对象
 * @param type 1为所有内容, 2为一串数字, 3为日期部分, 4为中文日期
 * @return String
 */
show : function(date, type) {
var year = date.getFullYear(), month = date.getMonth() + 1, day = date.getDate();
var hour = date.getHours(), minute = date.getMinutes(), second = date.getSeconds();
if (type == "1") {
return year + "-" + dt.disp(month) + "-" + dt.disp(day) + " " + dt.disp(hour) + ":" + dt.disp(minute) + ":" + dt.disp(second);
} else if (type == "2") {
return year + "" + month + "" + day + "" + hour + "" + minute + "" + second;
} else if (type == "3") {
return year + "-" + dt.disp(month) + "-" + dt.disp(day);
} else {
return year + "\u5e74" + month + "\u6708" + day + "\u65e5";
}
},

/**
 * @see 处理日期
 * @param monthOrDay 日期时间的一个数值(补齐两位数,不足加0)
 * @return String
 */
disp : function(monthOrDay) {
return parseInt(monthOrDay) < 10 ? "0" + monthOrDay : monthOrDay;
},

/**
* @see js对日期中的月份和日份的处理(比如:01处理后得到1)


* @param monthOrDay 月份或日份
* @return int
*/
dateNum : function(monthOrDay) {
return monthOrDay.substring(0, 1) == "0" ? parseInt(monthOrDay.substring(1, 2)) : parseInt(monthOrDay);
},

/**
* @see 根据年份和月份获得当月天数
* @param year 年份
* @param month 月份
* @return int
*/
dayNum : function(year, month) {
var days = 31;
if (month == 4 
[解决办法]
 month == 6 
[解决办法]
 month == 9 
[解决办法]
 month == 11) {
days = 30;
}
if (month == 2) {
days = (year % 4 == 0 ? 29 : 28);
}
return days;
},

/**
 * 获得之后的日期
 * @param second 多少秒之后
 * @param type 1为所有内容, 2为一串数字, 3为日期部分, 4为中文日期
 * @param dateTime 完整的日期, 比如:2013-06-01 12:20:32, 如果该参数为null就取当前日期
 * @return String
 */
after : function(second, type, dateTime) {
var date = (ch.isBlank(dateTime) ? new Date() : dt.turn(dateTime));
return dt.show(new Date(date - 0 + second * 1000), type);
},

/**
 * 获得之前的日期
 * @param second 多少秒之前
 * @param type 1为所有内容, 2为一串数字, 3为日期部分, 4为中文日期
 * @param dateTime 完整的日期, 比如:2013-06-01 12:20:32, 如果该参数为null就取当前日期
 * @return String
 */
before : function(second, type, dateTime) {
var date = (ch.isBlank(dateTime) ? new Date() : dt.turn(dateTime));
return dt.show(new Date(date - 0 - second * 1000), type);
},

/**
 * 把字符串转换成Date
 * @param dateTime 完整的日期, 比如:2013-06-01 12:20:32
 * @return Date
 */
turn : function(dateTime) {
return ch.isBlank(dateTime) ? null : new Date(Date.parse(dateTime.replace(/-/g, "/")));
},

/**
 * 两个时间相差多少秒(dateTime2 - dateTime1)
 * @param dateTime1 完整的日期, 比如:2013-06-01 12:20:32


 * @param dateTime2 完整的日期, 比如:2013-06-01 12:21:32 
 * @return int
 */
diff : function(dateTime1, dateTime2) {
return parseInt((dt.turn(dateTime2).getTime() - dt.turn(dateTime1).getTime()) / 1000);
},

/**
 * 根据日期和当前日期的比较, 显示中文提示
 * @param dateTime 完整的日期, 比如:2013-06-01 12:20:32
 * @return String
 */
showStr : function(dateTime) {
var diff = dt.diff(dateTime, dt.now('1'));
if (diff >= 0) {
if (diff < 10) {
return "刚刚";
} else if (diff < 60) {
return diff + "秒钟前";
} else if (diff < 3600) {
return parseInt(diff / 60) + "分钟前";
} else if (diff < 3600 * 24) {
return parseInt(diff / 3600) + "小时前";
} else if (diff < 3600 * 24 * 30) {
return parseInt(diff / (3600 * 24)) + "天前";
}
} else {
diff *= -1;
if (diff < 10) {
return "即将到期";
} else if (diff < 60) {
return diff + "秒后";
} else if (diff < 3600) {
return parseInt(diff / 60) + "分钟后";
} else if (diff < 3600 * 24) {
return parseInt(diff / 3600) + "小时后";
} else if (diff < 3600 * 24 * 30) {
return parseInt(diff / (3600 * 24)) + "天后";
}
}
return dateTime;
}
};


这一串代码中就有你想要的
[解决办法]
<script language="javascript" >
var date1 = '2013-8-28 11:21';
var date2 = '2013-8-28 15:11';
var pD = function(s) {
var dt = s.split(/ /);
var d = dt[0].split(/-/);
var t;
if (dt[1]) {
t = dt[1].split(/:/);
t.push(0);
t.push(0);
} else {
t = [0, 0, 0];
}
return new Date(d[0], d[1] - 1, d[2], t[0], t[1], t[2]);
};
var pS = function(d) {
var Y = d.getFullYear();


var M = d.getMonth() + 1; (M < 10) && (M = '0' + M);
var D = d.getDate(); (D < 10) && (D = '0' + D);
var h = d.getHours(); (h < 10) && (h = '0' + h);
var m = d.getMinutes(); (m < 10) && (m = '0' + m);
return Y + '-' + M + '-' + D + ' ' + h + ':' + m 
};
var d1 = pD(date1);
var d2 = pD(date2);
var s1 = pS(d1);
var s2 = pS(d2);
var flag = d2.getTime() - d1.getTime();
flag = flag / (1000 * 60 * 60); 

if(flag >3){
alert("大于三小时");
}else{
alert("小于三小时");
}
</script>

热点排行