java 两日期的周数_利用 Java 中 Calendar 计算两个日期之间的天数和周数

利用 Java 中 Calendar 计算两个日期之间的天数和周数

前言

究竟什么是一个 Calendar 呢? 中文的翻译就是日历, 那我们立刻可以想到我们生活中有阳 (公) 历阴 (农) 历之分它们的区别在哪呢?

比如有:

月份的定义 - 阳 `(公)历 一年 12 个月, 每个月的天数各不同; 阴 (农) 历, 每个月固定 28 天

每周的第一天 - 阳 (公) 历星期日是第一天; 阴 (农) 历, 星期一是第一天

实际上, 在历史上有着许多种纪元的方法它们的差异实在太大了, 比如说一个人的生日是 "八月八日" 那么一种可能是阳 (公) 历的八月八日, 但也可以是阴 (农) 历的日期所以为了计时的统一, 必需指定一个日历的选择那现在最为普及和通用的日历就是 "Gregorian Calendar" 也就是我们在讲述年份时常用 "公元几几年"Calendar 抽象类定义了足够的方法, 让我们能够表述日历的规则 Java 本身提供了对 "Gregorian Calendar" 规则的实现我们从

Calendar.getInstance()

中所获得的实例就是一个 "GreogrianCalendar" 对象(与您通过

new GregorianCalendar()

获得的结果一致)下面话不多说了, 来看看本文的正文吧

利用 java 中 Calendar 类计算出两个日期之间的天数和周数的算法!

计算出日期之间的天数:publicObjectcountTwoDate(ObjectstartDate,ObjectendDate)

{

if(StringUtils.isNotEmpty(startDate)&&StringUtils.isNotEmpty(endDate))

{

Datestart=(Date)startDate;

Dateend=(Date)endDate;

Calendarcal=Calendar.getInstance();

cal.setTime(start);

longtime1=cal.getTimeInMillis();

cal.setTime(end);

longtime2=cal.getTimeInMillis();

longbetween_days=(time2-time1)/(1000*3600*24);

returnInteger.parseInt(String.valueOf(between_days));

}

returnnull;

}

再计算出周数:publicObjectcountTwoDayWeek(ObjectstartDate,ObjectendDate)

{

if(StringUtils.isNotEmpty(startDate)&&StringUtils.isNotEmpty(endDate))

{

Datestart=(Date)startDate;

Dateend=(Date)endDate;

Calendarcal=Calendar.getInstance();

cal.setTime(start);

longtime1=cal.getTimeInMillis();

cal.setTime(end);

longtime2=cal.getTimeInMillis();

longbetween_days=(time2-time1)/(1000*3600*24);

Doubledays=Double.parseDouble(String.valueOf(between_days));

if((days/7)>0&&(days/7)<=1){

// 不满一周的按一周算

return1;

}elseif(days/7>1){

intday=days.intValue();

if(day%7>0){

returnday/7+1;

}else{

returnday/7;

}

}elseif((days/7)==0){

return0;

}else{

// 负数返还 null

returnnull;

}

}

returnnull;

}

来源: http://www.phperz.com/article/18/0222/359140.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值