WEB开发网
开发学院软件开发Java Geronimo!第 4 部分: 模式 阅读

Geronimo!第 4 部分: 模式

 2009-11-11 00:00:00 来源:WEB开发网   
核心提示: 技巧 4:不要保存能从数据库中计算出来的值, 日期计算在 Geronimo 系统中并不困难,Geronimo!第 4 部分: 模式(4),因为定义了 Calendar 和 Date 类,系统通常只意识到当前的日期和时间,再与保质期相比较),等等,所以让计算机从当前日期中提取出出生日期来获得年龄值

技巧 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; 
 } 
} 

上一页  1 2 3 4 5  下一页

Tags:Geronimo 部分 模式

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接