起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 154|回复: 8

【结贴】[问题]时间计算为什么是这样????????**

[复制链接]
发表于 2008-11-29 11:24:39 | 显示全部楼层 |阅读模式
两个时间:
时间A:2009-07-01 00:00:00
时间B:2009-12-31 00:00:00
用以下计算方式

DateUtils.MonthsBetween(时间B,时间A)+ 1
返回的数据竟然是7
为什么???

而把时间B换成2009-12-30 00:00:00
返回的数据又变成了6

为什么????????

请尽快核实一下,我急等~~~~~~~~~~~~~~~~~
版本3068
回复

使用道具 举报

 楼主| 发表于 2008-11-29 11:51:12 | 显示全部楼层
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
没人??????????????????
回复 支持 反对

使用道具 举报

发表于 2008-11-29 12:45:11 | 显示全部楼层
因为时间精度问题,还有毫秒等
http://www.bzsh.cn/software/p639/A63978548.shtml
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-29 13:34:29 | 显示全部楼层
精度?那为什么用 2009-01-01 00:00:00 到2009-12-31 00:00:00
算出来的又是正确的呢???其他月份我算出来都是正确的
就是不能用7月1号到12月31号莱算
回复 支持 反对

使用道具 举报

发表于 2008-11-29 15:56:57 | 显示全部楼层
刚才我又在百度上搜索了,跟这个函数相关,我也找到一些相关的方法,好像取年相减肥,然后*12,再加上月份的相减
http://www.80diy.com/home/20030707/08/1997473.html

今天只有一个值班,我周一再确认一下,然后跟贴告知您
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-29 16:05:23 | 显示全部楼层
揭帖吧~我自己处理了~
回复 支持 反对

使用道具 举报

发表于 2008-11-29 16:36:12 | 显示全部楼层
哦,请问你是怎么处理的?共享一下吧
回复 支持 反对

使用道具 举报

发表于 2008-11-29 20:55:33 | 显示全部楼层
插一句,首先要明确一点:MonthsBetween返回的是整型。(说明这个函数仅仅会返回一个这两个日期相差月份的近似值,注意:是近似值)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-12 15:55:00 | 显示全部楼层
笨办法~用的sql的DATEDIFF
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-27 21:35 , Processed in 0.034232 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表