【发布时间】:2013-05-15 17:54:20
【问题描述】:
您好,我正在计算怀孕期还剩多少天,但我认为我的算法不正确
public int getDaysPregnantRemainder_new() {
GregorianCalendar calendar = new GregorianCalendar();
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
long diffDays = 280 - ((getDueDate().getTime() - calendar.getTime()
.getTime()) / (24 * 60 * 60 * 1000));
return (int) Math.abs((diffDays) % 7);
}
我基于 280 天期限,getDueDate() 是一个 Date 对象,getTime() 返回毫秒 unix 时间
在某些现实世界的日子里,有时报告的数字会相差一,我开始认为我的算法是错误的,或者毫秒时间越来越远,或者毫秒时间不够精确,或者公历函数的循环很奇怪。
总之我不确定,任何见解都值得赞赏
【问题讨论】:
-
当时间部分超过/低于 12 小时标记时,它可能会减一......剥离日期的时间部分......