`

JAVA 求昨天、明天的算法(前两天,后三天求法)

    博客分类:
  • java
 
阅读更多

JAVA 求昨天、明天的算法(前两天,后三天求法)

 

 

JAVA的时间类是支持指向早一天或是晚一天,这样就给我们程序开发带来了很大的方便.比如说我们要求昨天或是明天是什么日子就不在辛苦地去算二用到底是多少天,不在想月未或是月初该怎么算.一切交给JDK处理.同样的,我们要求某时间之前或之后一段时间也好算了(这个功能运用得比较广范,如比我要获取前5天的数据用于表).
下面,我们来介绍JAVA时间类
java.lang.Object
java.util.Calendar        
java.util.GregorianCalendar
java.lang.Object
      
java.util.Date  

类 Date 表示特定的瞬间,精确到毫秒。
在 JDK 1.1 之前,类 Date 有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。不过,这些函数的 API 不易于实现国际化。从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和解析日期字符串。Date 中的相应方法已废弃。

Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。

GregorianCalendar 是 Calendar 的一个具体子类,提供了世界上大多数国家/地区使用的标准日历系统。
GregorianCalendar 是一种混合日历,在单一间断性的支持下同时支持儒略历和格里高利历系统,在默认情况下,它对应格里高利日历创立时的格里高利历日期(某些国家/地区是在 1582 年 10 月 15 日创立,在其他国家/地区要晚一些)。

Date 类在后来的JDK差不多已被已废弃了.所以在 Date也能实现指向早一天或是晚一天相对应的方法.

现在我们先看一段实现求前一天的代码:
        Calendar   yestoday   =   Calendar.getInstance();  
        
//cal1.set(2000,1,29);
        yestoday.add(Calendar.DATE,-1);
Calendar   的add(int field, int amount)方法根据日历规则,将指定的(有符号的)时间量添加到给定的日历字段中。其中field可以是Calendar的所有日历字段.(注cal1.set(2000,1,29)设置时间时月是从0开始的)
上面一段代的yestoday 就已经指向了昨天的现在这个时候了.

 求时间段一
般是在JAVA+数据库完成的
好比说前3天的数据吧(包括今天)
        Calendar   cal1   =   Calendar.getInstance();
        cal1.add(Calendar.DATE,
-2);
        
//cal1.set(2000,1,29);
        SimpleDateFormat   sdf   =   new SimpleDateFormat("yyyy-MM-dd");  
        String towDaysBefore 
= sdf.format(cal1.getTime());
        
        String today 
= sdf.format(Calendar.getInstance().getTime());
        
        String sql 
= "select * from "+tableName+" where time between '"+towDaysBefore
                    
+" and "+today;
上面的sql就是查前3天的数据(包括今天)的sql了
一般来说查一个时间段的数据是以天为基准,没必要以分秒为基准,所以要SimpleDateFormat   一下.当然到底以什么为基准还得取决于具体需求了.
分享到:
评论

相关推荐

    java时间格式大全(算法源码)

    java时间格式大全(算法源码) java,date,时间,时间格式,算法源码 * * @return */ public static String getTimeShort() { SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss"); Date currentTime...

    今天会是有Offer的一天么:面试时被问到的JAVA中的垃圾收集算法

    呸这不是前两天晚上我在《JAVA虚拟机》这本书第三章看过的内容么。其实这个面试问题非常常见了,基本各个公司JAVA面试都会涉及到这个问题。 我们在进行垃圾回收的时候,首先要明白一点:什么样的对象会被回收掉?...

    自己写的一个三次样条插值算法

    自己写的一个三次样条插值算法,看了两天书才写成的,自己感觉非常严密,有错误的话请大家指正!

    java自学之道

    2.24 递归求法 2.25 求不多于5的正整数 2.26 回文判断 2.27 星期判断 2.28 插数入数组 2.29 取整数的任意位 2.30 按顺序输出数列 2.31 位置替换 2.32 字符串排序 2.33 贷款器 2.34 通讯录排序 2.35 闰年判断 2.36 ...

    JAVA面试题最全集

    如何取小数点前两位,并四舍五入。 4.日期和时间 如何取得年月日,小时分秒 如何取得从1970年到现在的毫秒数 如何获取某个日期是当月的最后一天 如何格式化日期 5.数组和集合 6.文件和目录(I/O)操作 如何...

    Java面试宝典-经典

    38、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 25 39、下面的程序代码输出的结果是多少? 25 40、final, finally, finalize的区别。 27 ...

    Java面试宝典2010版

    38、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 25 39、下面的程序代码输出的结果是多少? 25 40、final, finally, finalize的区别。 27 ...

    java常用工具类的使用

    “工欲善其事,必先利其器”,在Java程序开发过程中,很多算法(比如:MD5加密算法)、很多数据结构(比如链表LinkedList)已经实现并且大多放在类库的java.util包中,程序员只需要了解各种工具的功能就可以直接调用...

    java面试题大全(2012版)

    38、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 25 39、下面的程序代码输出的结果是多少? 25 40、final, finally, finalize的区别。 27 ...

    java面试宝典2012

    各种java面试题集,面试前必备哦, 1. Java基础部分 7 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 8 2、Java有没有goto? 8 3、说说&和&&的区别。 8 4、在JAVA中如何跳出当前的多重嵌套...

    最新Java面试宝典pdf版

    38、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 25 39、下面的程序代码输出的结果是多少? 25 40、final, finally, finalize的区别。 27 ...

    Java面试笔试资料大全

    38、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 25 39、下面的程序代码输出的结果是多少? 25 40、final, finally, finalize的区别。 27 ...

    JAVA面试宝典2010

    38、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 25 39、下面的程序代码输出的结果是多少? 25 40、final, finally, finalize的区别。 27 ...

    Java面试宝典2012新版

    38、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 25 39、下面的程序代码输出的结果是多少? 25 40、final, finally, finalize的区别。 27 ...

    Java面试宝典2012版

    38、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 25 39、下面的程序代码输出的结果是多少? 25 40、final, finally, finalize的区别。 ...

    Java面试宝典

    由于这套面试题涉及的范围很泛,很广,很杂,大家不可能一天两天就看完和学完这套面试宝典,即使你已经学过了有关的技术,那么至少也需要一个月的时间才能消化和掌握这套面试宝典,所以,大家应该早作准备,从拿到这...

Global site tag (gtag.js) - Google Analytics