27 个解决方案
#1
public static final int daysBetween(Date early, Date late) {
java.util.Calendar calst = java.util.Calendar.getInstance();
java.util.Calendar caled = java.util.Calendar.getInstance();
calst.setTime(early);
caled.setTime(late);
//设置时间为0时
calst.set(java.util.Calendar.HOUR_OF_DAY, 0);
calst.set(java.util.Calendar.MINUTE, 0);
calst.set(java.util.Calendar.SECOND, 0);
caled.set(java.util.Calendar.HOUR_OF_DAY, 0);
caled.set(java.util.Calendar.MINUTE, 0);
caled.set(java.util.Calendar.SECOND, 0);
//得到两个日期相差的天数
int days = ((int) (caled.getTime().getTime() / 1000) - (int) (calst
.getTime().getTime() / 1000)) / 3600 / 24;
return days;
}
#2
楼上正解
#3
先使用获取日期函数,获取当前日期,再取出以后的日期字符串!
使用subString 截取字符串再比较也可以啊!
使用subString 截取字符串再比较也可以啊!
#4
那样的代码我看不懂 啊?
#5
先使用获取日期函数,获取当前日期,再取出以前的日期字符串!
使用subString 截取字符串再比较也可以啊!
#6
完整的测试代码:
http://zhoujingxian.javaeye.com/admin/blogs/440953
http://zhoujingxian.javaeye.com/admin/blogs/440953
#7
那个网站进去不了
#8
楼上的那个师兄,你那个网站进去不了
#9
你这个截取的如果不自己计算那个月份的天数应该出不来的吧
比如:20090805与20090701,只单纯的用string转int来相剪的话,出来的是104,不是35,如果自己手动处理年份,月份,和天数的话,那就另当别论了啊
#10
谢谢各位的关心咯!我明天去学校机房弄咯,再告诉您们结果哈!谢谢大家!6楼的住户谢谢您的网站
#11
http://zhoujingxian.javaeye.com/blog/440961
贴快了
#12
路过 顶一下
#13
与数据库交互了么,mysql本身支持时间的加减
#14
public static void main(String args[])
{
getDays("20090618", "20090620");
}
private static long getDays(String before, String after) throws Exception
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
Date date1 = sdf.parse(before);
Date date2 = sdf.parse(after);
long millSeconds = date2.getTime() - date1.getTime();
long days = millSeconds/(1000*60*60*24);
System.out.println("days is : " + days);
return days;
}
#15
樓上的方法不錯。也可以。
#16
晕,直接转成long数据类型,就可以比较了
还有就是两个Date可以 compare方法
还有就是两个Date可以 compare方法
#17
楼主是北大青鸟的吧.. 这贴应该是 s1的项目...
#18
LZ 的这个项目是拿数组做的.
#19
。。。
为什么要用java算呢?几乎所有数据库都支持时间计算的吧?
直接传一个7天进去,在SQL里就搞定了。
为什么要用java算呢?几乎所有数据库都支持时间计算的吧?
直接传一个7天进去,在SQL里就搞定了。
#20
up
#21
嗯。。支持19楼的方法。
#22
import java.util.Date;
import org.apache.commons.lang.time.DateFormatUtils;
import org.apache.commons.lang.time.DateUtils;
public class Test {
public static void main(String[] args) {
Date[] dates = new Date[] { java.sql.Date.valueOf("2010-01-05"),
java.sql.Date.valueOf("2009-12-05") };
Date now = new Date();
Date deadline = DateUtils.addDays(now, -7);
System.out.println("当前时间:"+DateFormatUtils.ISO_DATE_FORMAT.format(now));
System.out.println("7天前:"+DateFormatUtils.ISO_DATE_FORMAT.format(deadline));
for(Date date: dates){
if(date.before(deadline)){
System.out.println("超过7天:"+DateFormatUtils.ISO_DATE_FORMAT.format(date));
}else{
System.out.println("没超7天:"+DateFormatUtils.ISO_DATE_FORMAT.format(date));
}
}
}
}
需要commons-lang类库,下载地址:http://commons.apache.org/downloads/download_lang.cgi
#23
mark
#24
这个可以学习;
这个可以
#25
日期化字符串
#26
当前时间减去不违规的天数,然后用得到的时间 after before等函数比较!
#27
格式化成日期类型。然后直接用compareTo比较。
#1
public static final int daysBetween(Date early, Date late) {
java.util.Calendar calst = java.util.Calendar.getInstance();
java.util.Calendar caled = java.util.Calendar.getInstance();
calst.setTime(early);
caled.setTime(late);
//设置时间为0时
calst.set(java.util.Calendar.HOUR_OF_DAY, 0);
calst.set(java.util.Calendar.MINUTE, 0);
calst.set(java.util.Calendar.SECOND, 0);
caled.set(java.util.Calendar.HOUR_OF_DAY, 0);
caled.set(java.util.Calendar.MINUTE, 0);
caled.set(java.util.Calendar.SECOND, 0);
//得到两个日期相差的天数
int days = ((int) (caled.getTime().getTime() / 1000) - (int) (calst
.getTime().getTime() / 1000)) / 3600 / 24;
return days;
}
#2
楼上正解
#3
先使用获取日期函数,获取当前日期,再取出以后的日期字符串!
使用subString 截取字符串再比较也可以啊!
使用subString 截取字符串再比较也可以啊!
#4
那样的代码我看不懂 啊?
#5
先使用获取日期函数,获取当前日期,再取出以前的日期字符串!
使用subString 截取字符串再比较也可以啊!
#6
完整的测试代码:
http://zhoujingxian.javaeye.com/admin/blogs/440953
http://zhoujingxian.javaeye.com/admin/blogs/440953
#7
那个网站进去不了
#8
楼上的那个师兄,你那个网站进去不了
#9
你这个截取的如果不自己计算那个月份的天数应该出不来的吧
比如:20090805与20090701,只单纯的用string转int来相剪的话,出来的是104,不是35,如果自己手动处理年份,月份,和天数的话,那就另当别论了啊
#10
谢谢各位的关心咯!我明天去学校机房弄咯,再告诉您们结果哈!谢谢大家!6楼的住户谢谢您的网站
#11
http://zhoujingxian.javaeye.com/blog/440961
贴快了
#12
路过 顶一下
#13
与数据库交互了么,mysql本身支持时间的加减
#14
public static void main(String args[])
{
getDays("20090618", "20090620");
}
private static long getDays(String before, String after) throws Exception
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
Date date1 = sdf.parse(before);
Date date2 = sdf.parse(after);
long millSeconds = date2.getTime() - date1.getTime();
long days = millSeconds/(1000*60*60*24);
System.out.println("days is : " + days);
return days;
}
#15
樓上的方法不錯。也可以。
#16
晕,直接转成long数据类型,就可以比较了
还有就是两个Date可以 compare方法
还有就是两个Date可以 compare方法
#17
楼主是北大青鸟的吧.. 这贴应该是 s1的项目...
#18
LZ 的这个项目是拿数组做的.
#19
。。。
为什么要用java算呢?几乎所有数据库都支持时间计算的吧?
直接传一个7天进去,在SQL里就搞定了。
为什么要用java算呢?几乎所有数据库都支持时间计算的吧?
直接传一个7天进去,在SQL里就搞定了。
#20
up
#21
嗯。。支持19楼的方法。
#22
import java.util.Date;
import org.apache.commons.lang.time.DateFormatUtils;
import org.apache.commons.lang.time.DateUtils;
public class Test {
public static void main(String[] args) {
Date[] dates = new Date[] { java.sql.Date.valueOf("2010-01-05"),
java.sql.Date.valueOf("2009-12-05") };
Date now = new Date();
Date deadline = DateUtils.addDays(now, -7);
System.out.println("当前时间:"+DateFormatUtils.ISO_DATE_FORMAT.format(now));
System.out.println("7天前:"+DateFormatUtils.ISO_DATE_FORMAT.format(deadline));
for(Date date: dates){
if(date.before(deadline)){
System.out.println("超过7天:"+DateFormatUtils.ISO_DATE_FORMAT.format(date));
}else{
System.out.println("没超7天:"+DateFormatUtils.ISO_DATE_FORMAT.format(date));
}
}
}
}
需要commons-lang类库,下载地址:http://commons.apache.org/downloads/download_lang.cgi
#23
mark
#24
这个可以学习;
这个可以
#25
日期化字符串
#26
当前时间减去不违规的天数,然后用得到的时间 after before等函数比较!
#27
格式化成日期类型。然后直接用compareTo比较。