Date 计算日期
来源:互联网 发布:windows安装snmp 编辑:程序博客网 时间:2024/06/05 09:19
http://linychuo.blog.sohu.com/93494556.html
问题分析:求日期差,重要的是时间对象的日期部分,与时分秒没有关系。所以问题的关键是过滤掉时分秒,保留日期部分。干的活象低通滤波器,滤掉高频杂波,保留低频信号。
解决思路:一天的秒数是24*60*60*1000=86400000=Senconds。时间对象date1.getTime()是自1970年1月1日零点以来的秒数,用它整除以Seconds,就得到自1970年1月1日以来的天数。注意这里用的是整除符号,时分秒被过滤掉了。对date2也施行同样的操作,得到date2的天数。date2的天数减去date1的天数,所得结果就是日期差。
举例来说,用最简单的例子,假设date1等于1970年1月5日15点整,date2等于1970年1月6日14点整。date1整除以seconds的结果是4,date2整除以seconds的结果是5,date2与date1相差5-4=1天,与我们的预期相符。
方法一(简洁有效,没有方法二精准到分秒):
public long differ(Date dnow,dold){
return dnow.getTime()/86400000 - dold.getTime()/86400000;
}
大牛的方法二:
原文连接:http://blog.csdn.net/rmartin/article/details/1452867
private int daysBetween(Date now, Date returnDate) {
Calendar cNow = Calendar.getInstance();
Calendar cReturnDate = Calendar.getInstance();
cNow.setTime(now);
cReturnDate.setTime(returnDate);
setTimeToMidnight(cNow);
setTimeToMidnight(cReturnDate);
long todayMs = cNow.getTimeInMillis();
long returnMs = cReturnDate.getTimeInMillis();
long intervalMs = todayMs - returnMs;
return millisecondsToDays(intervalMs);
}
private int millisecondsToDays(long intervalMs) {
return (int) (intervalMs / (1000 * 86400));
}
private void setTimeToMidnight(Calendar calendar) {
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
}
同事在网上找到的方法:
java.util.Date date= myFormatter.parse("2003-05-1");
java.util.Date mydate= myFormatter.parse("1899-12-30");
long day=(date.getTime()-mydate.getTime())/(24*60*60*1000);
out.println(day);
结果应该是正确的,它根本就没有时分秒,有了时分秒与Kun的方法等价。不过用起来会很麻烦,因为要先得到字符串的日期,才能用它。
- Date 计算日期
- Date类日期计算
- date命令计算日期跨天
- Linux利用date进行日期计算
- JS DATE 计算两个日期之差
- First Date (hnoj12952)日期计算
- Python日期操作date,计算到特定日期的时间。
- 不同Unix环境下date计算日期的用法
- java的Date日期增加和减少计算
- 计算Java日期Date、DateFormat和GregorianCalendar的使用
- Java 基础巩固 Date 格式化 及 日期计算
- Date类 计算 日期加天数,日期减天数 之后的 日期 通用算法
- Date 日期
- date 日期
- java date 日期 date
- java.sql.Date数据库日期类型计算及与java.util.Date的转换
- 关于date处理的一个util,日期格式化,自定义格式化,日期计算
- shell的date日期循环方法:日期格式转时间戳计算,再将时间戳转回日期格式
- 小宝,小宝,我爱你
- Thread.cpp
- 看老外程序员如何向妻子解释OOD (转载)
- 黑马程序员_面向对象的特性
- 数据结构笔试题
- Date 计算日期
- 用ViewPager实现欢迎引导页面
- pyramid getting start
- 嫣然一笑苦了情
- poj 3017 Cut the Sequence dp 单调队列+set
- vc6.0在win7出现的两个常见问题
- 浅谈.NET中泛型的基本原理
- VC ++ MFC打开文件对话框
- (C)探讨i++和++i