[请教]如何能得到两个日期之间相差的年数呢?

budai 2004-04-21 05:43:25
数据表中有一个参加工作的日期字段是String型的,我想取得当前的日期与这个字段相减得到一个年份。


Calendar today = java.util.Calendar.getInstance();
long to = today.getTimeInMillis();

Date old = java.sql.Date.valueOf("1975-04-18");
long ol = old.getTime();

Date cha = new java.sql.Date(to-ol);

System.out.println(cha);

我这样得到的是1999-01-05,不是我想要的年份。
如果得到年份该如何写啊!!!!
...全文
200 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
希偌 2004-04-21
  • 打赏
  • 举报
回复
用Calendar.get(Calendar.YEAR)
gnodiew 2004-04-21
  • 打赏
  • 举报
回复
写错了datefield->d
SELECT DATEDIFF([year], d, GETDATE()) FROM ttt

gnodiew 2004-04-21
  • 打赏
  • 举报
回复
你说的不清楚
数据表是数据库的一张表吗?
如果是SQL Server的话一句话就可以了
比如
CREATE TABLE [dbo].[ttt] (
[d] [char] (20)
) ON [PRIMARY]

SELECT DATEDIFF([year], datefield, GETDATE()) FROM ttt
zl555 2004-04-21
  • 打赏
  • 举报
回复
取年份直接相减不行啊
budai 2004-04-21
  • 打赏
  • 举报
回复
谢谢!

我想得到的是年份数!本来我想用
long day=(date.getTime()-mydate.getTime())/(365*24*60*60*1000);
可是有的年份是闰年,所以说这样算不准确。。。。。。。

还有什么好的办法吗?
凋零的老树 2004-04-21
  • 打赏
  • 举报
回复
//两个时间之间的天数

SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");

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);

out.println("<br>");

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧