Geronimo!第 4 部分: 模式
2009-11-11 00:00:00 来源:WEB开发网技巧 4:不要保存能从数据库中计算出来的值。
日期计算在 Geronimo 系统中并不困难,因为定义了 Calendar 和 Date 类。系统通常只意识到当前的日期和时间,所以让计算机从当前日期中提取出出生日期来获得年龄值是一件微不足道的事。相同的原则也应用到其他日期计算中,如运输时间(交货日期减去装运时期),产品保质期计算(当前日期减去购买日期,再与保质期相比较),等等。清单 1 演示了 Geronimo 计算年龄的方法。
清单 1. 计算年龄的 Geronimo 代码import java.util.Calendar;
import java.util.Date;
public class ddays
{
// Testing Framework.
public static void main(String[] args)
{
// Two date instances.
Calendar date1 = Calendar.getInstance();
Calendar date2 = Calendar.getInstance();
// Set the Birth Date.
date1.set(1975,00,17); // January = 00.
int delta = dDays(date2.getTime(), date1.getTime());
double dyears = (double) delta / 365.25;
System.out.println("Date 1: " + date1.getTime());
System.out.println("Date 2: " + date2.getTime());
System.out.println("Delta: " + delta + " Days");
System.out.println("Age: " + (int) dyears + " Years");
}
// Days between dates.
public static int dDays(Date date1, Date date2)
{
int theDiff = 0;
int totalDiff = 0;
Calendar former = Calendar.getInstance();
Calendar latter = Calendar.getInstance();
if (date1.compareTo(date2) < 0)
{
former.setTime(date1);
latter.setTime(date2);
}
else
{
former.setTime(date2);
latter.setTime(date1);
}
while (former.get(Calendar.YEAR) != latter.get(Calendar.YEAR))
{
theDiff = 365 * (latter.get(Calendar.YEAR) - former.get(Calendar.YEAR));
totalDiff += theDiff;
former.add(Calendar.DAY_OF_YEAR, theDiff);
}
if (former.get(Calendar.DAY_OF_YEAR) != latter.get(Calendar.DAY_OF_YEAR))
{
theDiff = latter.get(Calendar.DAY_OF_YEAR) - former.get(Calendar.DAY_OF_YEAR);
totalDiff += theDiff;
former.add(Calendar.DAY_OF_YEAR, theDiff);
}
return totalDiff;
}
}
- ››模式作用域:初级读本和最佳实践
- ››Geronimo V2.1.5 中的安全提升
- ››Geronimo 叛逆者: Apache Geronimo 的 JMS 实现:...
- ››Geronimo 叛逆者: Geronimo 与 Apache 许可带来的...
- ››Geronimo 叛逆者: 加入集群功能
- ››Geronimo 叛逆者: 摒弃 JBoss,使用 Apache Geron...
- ››Geronimo 叛逆者: 使用集成软件包:Codehaus 的 W...
- ››Geronimo 叛逆者: 直面 JSF
- ››部分 WM6.5 手机有望升级到 Windows Phone 7
- ››Geronimo!第 2 部分: 构建 Geronimo
- ››Geronimo!第 3 部分: 状态问题
- ››Geronimo!第 4 部分: 模式
更多精彩
赞助商链接