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

前言

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

比如有:

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

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

实际上,在历史上有着许多种纪元的方法。它们的差异实在太大了,比如说一个人的生日是"八月八日" 那么一种可能是阳(公)历的八月八日,但也可以是阴(农)历的日期。所以为了计时的统一,必需指定一个日历的选择。那现在最为普及和通用的日历就是 "Gregorian Calendar"。也就是我们在讲述年份时常用 "公元几几年"。Calendar 抽象类定义了足够的方法,让我们能够表述日历的规则。Java 本身提供了对 "Gregorian Calendar" 规则的实现。我们从 Calendar.getInstance() 中所获得的实例就是一个 "GreogrianCalendar" 对象(与您通过 new GregorianCalendar() 获得的结果一致)。下面话不多说了,来看看本文的正文吧。

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

计算出日期之间的天数:

public Object countTwoDate(Object startDate, Object endDate)
 {
  if(StringUtils.isNotEmpty(startDate) && StringUtils.isNotEmpty(endDate))
  {
   Date start=(Date)startDate;
   Date end = (Date)endDate;
   Calendar cal=Calendar.getInstance();
   cal.setTime(start);
   long time1=cal.getTimeInMillis();
   cal.setTime(end);
   long time2=cal.getTimeInMillis();
   long between_days=(time2-time1)/(1000*3600*24);
   return Integer.parseInt(String.valueOf(between_days));
  }
  return null;
 } 

再计算出周数:

public Object countTwoDayWeek(Object startDate, Object endDate)
 {
  if(StringUtils.isNotEmpty(startDate) && StringUtils.isNotEmpty(endDate))
  {
   Date start=(Date)startDate;
   Date end = (Date)endDate;
   Calendar cal=Calendar.getInstance();
   cal.setTime(start);
   long time1=cal.getTimeInMillis();
   cal.setTime(end);
   long time2=cal.getTimeInMillis();
   long between_days=(time2-time1)/(1000*3600*24);
   Double days=Double.parseDouble(String.valueOf(between_days));
   if((days/7)>0 && (days/7)<=1){
    //不满一周的按一周算
    return 1;
   }else if(days/7>1){
    int day=days.intValue();
    if(day%7>0){
     return day/7+1;
    }else{
     return day/7;
    }
   }else if((days/7)==0){
    return 0;
   }else{
    //负数返还null
    return null;
   }
  }
  return null;
 } 

总结

以上就是利用Java中的Calendar计算两个日期之间天数和周数的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java
, calendar
, calendar计算日期差
天数
calendar获取当月天数、calendar相差天数、calendar获取月份天数、calendar天数加一、calendar获取天数,以便于您获取更多的相关知识。

时间: 2024-12-31 12:33:40

利用Java中Calendar计算两个日期之间的天数和周数_java的相关文章

Java函数2:计算两个日期相差的天数

import java.util.Scanner; public class HelloWorld { public static void main(String[] args){ // Scanner s = new Scanner(System.in); // System.out.println("请输入一个数字"); // int num = s.nextInt(); int SUM = Caluater_date_sub_day(2009,1,25,2008,1,10);

Java 计算两个日期相差的天数

import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class test16 { /** * @param args * @throws ParseException */ public static void main(String[] args) throws ParseException { /

使用java对给定的两个日期之间的日期进行遍历

问题描述 使用java对给定的两个日期之间的日期进行遍历 使用java对给定的两个日期之间的日期进行遍历,比如startTime 是 2014-07-11 endTime 是 2014-08-11 如何把他们之间的日期获取并遍历出来. 解决方案 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import j

link用循环计算两个日期之间有多少工作日

问题描述 link用循环计算两个日期之间有多少工作日 用循环计算两个日期之间有多少工作日,link怎么实现?用takewhile怎么代替while? 解决方案 不考虑过节和轮休,写一个给你 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class P

oracle中如何获取两个日期之间指定星期的日期是多少

问题描述 oracle中如何获取两个日期之间指定星期的日期是多少 如题,现在用户选择了一个起始日期和截止日期, 也选择了几个星期, 那么如何得到他选择的这几个星期的日期分别是多少? 解决方案 获取两个日期之间星期X的日期列表获取两个日期之间的日期间隔获取指定日期是星期几 解决方案二: 我的思路是这样的 1.写个方法,获取 起始,截止 日期之间 所有的日期 2.oracle提供了获取指定日期是星期几 的 函数 把选定的星期作为条件即可 解决方案三: DECLARE v_date date; v_n

用javascript实现计算两个日期的间隔天数_javascript技巧

ASP 里面计算两个时间的差距可以 DateDiff,但 javascript 里面没有,需要手写函数. js 里面居然可以直接 Date1-Date2,而且还是转换为毫秒计算时间差的. 复制代码 代码如下: // 计算两个日期的间隔天数  function DateDiff(sDate1, sDate2){ //sDate1和sDate2是2002-12-18格式   var aDate, oDate1, oDate2, iDays   aDate = sDate1.split("-"

提高运行效率-源代码去下,用来计算两个日期之间的时间。但是运行特别慢。求大神优化,能让它运行快点

问题描述 源代码去下,用来计算两个日期之间的时间.但是运行特别慢.求大神优化,能让它运行快点 #include using namespace std; const int lmonth[13]={0,31,29,31,30,31,30,31,31,30,31,30,31}; //闰年每个月份的时间 const int umonth[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; //非闰年每个月份的时间,定义符合使用习惯 bool isLeapYear

ASP.NET如何获取两个日期之间的天数

 这篇文章主要介绍了ASP.NET获取两个日期之间的天数方法,需要的朋友可以参考下  代码如下: DateTime startdate=DateTime.Parse("2013-11-01");  DateTime enddate = DateTime.Parse("2013-11-11");  int d = enddate.Subtract(startdate).Days;    定义开始时间startdate  结束时间enddate  使用方法Subtrac

Excel2013,计算两个日期之间工作日的天数

  想知道自己在公司工作了多少天吗?在Excel中,输入起始日期和终止日期,然后用一个NETWORKDAYS函数就能轻松搞定啦!一起来看看具体做法吧. 详细操作步骤 用Excel2013打开一篇有两个日期的工作表,例如,我们现在要计算A列和B列日期之间的工作日的天数,那么,在C2单元格输入函数"=NETWORKDAYS(A2,B2)",完成之后按下回车键. 此时C2单元格中已经计算出了B2和A2日期之间工作日的天数,将鼠标移动到C2单元格的右下方,待光标变成十字状态的时候按下鼠标,并拖