当前位置: 网学 > 编程文档 > JAVA > 正文

如何处理Java中的时间问题

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/16
下载{$ArticleTitle}原创论文样式
one();


gc1 = (GregorianCalendar) g2.clone();


}

 

 

gc1.clear(Calendar.MILLISECOND);


gc1.clear(Calendar.SECOND);


gc1.clear(Calendar.MINUTE);


gc1.clear(Calendar.HOUR_OF_DAY);

 

 

gc2.clear(Calendar.MILLISECOND);


gc2.clear(Calendar.SECOND);


gc2.clear(Calendar.MINUTE);


gc2.clear(Calendar.HOUR_OF_DAY);

 

 

while ( gc1.before(gc2) ) {


gc1.add(Calendar.DATE, 1);


elapsed++;


}


return elapsed;


}

 

 

public int getMonths(GregorianCalendar g1, GregorianCalendar g2) {


int elapsed = 0;


GregorianCalendar gc1, gc2;

 

 

if (g2.after(g1)) {


gc2 = (GregorianCalendar) g2.clone();


gc1 = (GregorianCalendar) g1.clone();


}


else {


gc2 = (GregorianCalendar) g1.clone();


gc1 = (GregorianCalendar) g2.clone();


}

 

 

gc1.clear(Calendar.MILLISECOND);


gc1.clear(Calendar.SECOND);


gc1.clear(Calendar.MINUTE);


gc1.clear(Calendar.HOUR_OF_DAY);


gc1.clear(Calendar.DATE);

 

 

gc2.clear(Calendar.MILLISECOND);


gc2.clear(Calendar.SECOND);


gc2.clear(Calendar.MINUTE);


gc2.clear(Calendar.HOUR_OF_DAY);


gc2.clear(Calendar.DATE);

 

 

while ( gc1.before(gc2) ) {


gc1.add(Calendar.MONTH, 1);


elapsed++;


}


return elapsed;


}


}

 

 

你可以在上面的类中补充另外的方法来处理小时和分钟。同样,计算时间段的算法能更高效一些,尤其是时间相隔很长。可是,作为介绍目的,这个算法有短小和简单的优势。


下面的例子使用ElapsedTime类来计算两个日期之间的天使,而后是月数:

 

 

import java.util.*;

 

 

public class Example {


public static void main(String args) {


GregorianCalendar gc1 = new GregorianCalendar(2001, Calendar.DECEMBER, 30);


GregorianCalendar gc2 = new GregorianCalendar(2002, Calendar.FEBRUARY, 1);

 

 

ElapsedTime et = new ElapsedTime();


int days = et.getDays(gc1, gc2);


int months = et.getMonths(gc1, gc2);

 

 

System.out.println("Days = " + days);


System.out.println("Months = " + months);


}


}

 

 

当计算时,上面的程序可能有用,例如,最近的航班。它显示下面的输出:

 

 

Days = 33


Months = 2

 

 

(OK,关于航班的计算有些夸张;这个天数算法很适合像图书馆借书这样的应用,你看到了她怎样工作)


告诫


在进行时间工作时要谨慎:你看到的时间段的例子,你精确仔细的考虑非常重要。本文介绍了两种通常计算时间段的想法,但是人们能想到的时间段的计算方法仅仅受到人类想象力的限制。


所以,当写一个Java程序的时候,确信你的精确度能让使用和以来这些程序的人满意。同样,彻底的测试程序对处理时间的程序非重重要。


总结


本文是在我的前一篇文章
Java时间计算介绍怎样使用GregorianCalendar 和
DateFormat类处理时间问题的基础上的。你已经看到了两种方法来思考时间段问题和两种相应的途径使用Java来处理时间问题。这里提供的信息,很
基础,提供给你一个在Java中处理时间问题的有力工具。

 

 

关于作者


Robert Nielsen是SCJP。他拥有硕士学位,专攻计算机教育,并且在计算机领域执教多年。他也在各样的杂志上发表过很多计算机相关的文章。


关于译者


Cocia Lin(cocia@163.com)是程序员。它拥有学士学位,现在专攻Java相关技术,刚刚开始在计算机领域折腾。

  • 上一篇资讯: JAVA元数据注释初探
  • 下一篇资讯: FCKEditer使用详解
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号