使用java.util.Calendar返回间隔天数

calendar

使用SimpleDateFormat,规定好格式,parser出错即为非法/** * Calculates the number of days between two calendar days in a manner * which is independent of the Calendar type used. * * @param d1    The first date. * @param d2    The second date. * * @return      The number of days between the two dates.  Zero is *              returned if the dates are the same, one if the dates are *              adjacent, etc.  The order of the dates *              does not matter, the value returned is always >= 0. *              If Calendar types of d1 and d2 *              are different, the result may not be accurate. */static int getDaysBetween (java.util.Calendar d1, java.util.Calendar d2) {    if (d1.after(d2)) {  // swap dates so that d1 is start and d2 is end        java.util.Calendar swap = d1;        d1 = d2;        d2 = swap;    }    int days = d2.get(java.util.Calendar.DAY_OF_YEAR) -               d1.get(java.util.Calendar.DAY_OF_YEAR);    int y2 = d2.get(java.util.Calendar.YEAR);    if (d1.get(java.util.Calendar.YEAR) != y2) {        d1 = (java.util.Calendar) d1.clone();        do {            days += d1.getActualMaximum(java.util.Calendar.DAY_OF_YEAR);            d1.add(java.util.Calendar.YEAR, 1);        } while (d1.get(java.util.Calendar.YEAR) != y2);    }    return days;}

时间: 2024-10-25 04:58:46

使用java.util.Calendar返回间隔天数的相关文章

Java日期时间 java.util.Calendar和GregorianCalendar分析

Java的java.util.Calendar用于日期和时间的运算.无论任何时候,只要你有一些轻微操作(除了仅仅表示日期和时间)需要执行,那么就使用这个类.(原文:Whenever you have something slightly more advanced than just representing a date and time, this is the class to use.) java.util.Calendar类是抽象的,意味着你不能对其进行实例化.这么设计的原因是这个世界

关于【java.util.Calendar】类的一些问题

问题描述 上图是对intjava.util.GregorianCalendar.getActualMinimum(intfield)intjava.util.GregorianCalendar.getActualMaximum(intfield)方法的各个取值的一个统计为什么WEEK_OF_YEAR最小值是1而WEEK_OF_MONTH最小值是0呢?二楼上统计程序代码 解决方案 解决方案二:packagemh_net.kingsoft;importjava.util.Calendar;impor

Java Date Time 教程-java.util.Calendar和GregorianCalendar

目录 实例化GregorianCalendar 获取年.月.日等 增加和减少年.月.日等 陷阱和误区 月份的陷阱 星期几的误区 JavaDoc中的更多细节 Java的java.util.Calendar用于日期和时间的运算.无论任何时候,只要你有一些轻微操作(除了仅仅表示日期和时间)需要执行,那么就使用这个类.(原文:Whenever you have something slightly more advanced than just representing a date and time,

能不能获取到java.util.calendar的源码

问题描述 我们都知道这个被封装起来了,sun只提供了接口,但是我不知道是不是开源,网上搜没搜到.我最近在做android的日历,android下的一些获取日期的接口[如getDayAt(introw,intcolumn)]会用到java.util.calendar里面的get(intfield)方法,但是我不太明白其中的参数的意思[如calendar.get(7)].java的docs里是这样解释的:get(intfield)返回给定日历字段的值.在lenient模式下,所有日历字段都被标准化.

Oracle+ibatis的<select>中resultClass是java.util.HashMap 返回结果key都是大写的变量名 如何解决

问题描述 如题:Oracle+ibatis的<select>中resultClass是java.util.HashMap 返回结果key都是大写的变量名 如何解决如果用resultClass用自定义的class可以解决,那么不同的多表查询岂不是要定义多个class来装这些结果集,即便是用resultMap还是得定义相关的配置,总不会每定义一个<select>(假设都是多表查询,而且都是不同的表),都要定义一个resultClass或者resultMap吧?我现在的问题是:用ibat

java.util.Calendar 类的使用,请教

问题描述 CalendarcurrentTime=Calendar.getInstance(TimeZone.getTimeZone("GMT"));CalendardefaultTime=Calendar.getInstance();System.out.println(currentTime);System.out.println(defaultTime);System.out.println(currentTime.getTimeInMillis());System.out.pr

java计算时间日期间隔程序

计算时间差 **/  代码如下 复制代码     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");     String systemTime = sdf .format(new Date()).toString();     将截取到的时间字符串转化为时间格式的字符串 **/     Date begin=sdf.parse(2008-03-28 11:55:30);     Date end =

Java Date Time 教程-java.util.Date

原文链接 作者:Jakob Jenkov  译者:魏嘉鹏 Java的java.util.Date类是Java最初的时间类之一.今天该类的大部分方法已不推荐使用,取而代之的是java.util.Calendar类.不过你仍然可以使用java.util.Date类去表示某个时间.下面是一个如何实例化java.util.Date的例子: java.util.Date date = new java.util.Date(); Date实例包含了当前时间作为它的日期和时间.你可以通过getTime()方法

Java的calendar类用法

YEAR  这是哪年 MONTH  这是月(从0开始) WEEK_OF_YEAR 今年的第几星期 WEEK_OF_MONTH 这个月的第几星期(从一开始) DATE  今天几号 DAY_OF_MONTH  这个月的第几天 DAY_OF_YEAR   这一年的第几天 DAY_OF_WEEK   这周周几(从日开始计算,从1计算) DAY_OF_WEEK_IN_MONTH 第几周(从第一天开始算一周) AM_PM  上午还是下午0为上午,1为下午 HOUR 12小时制几点 HOUR_OF_DAY