`
liuzhiqiang19890403
  • 浏览: 61028 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

日期相差月和日期加月

 
阅读更多

/**
  * 计算给定日期+几月      假如当前日期是1月31号  月份:1   那么得到的日期就是2月28号
  * @param date
  * @param month
  * @return
  */
 public String nextTime(Date date,int month){
  SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");  
  Date smdate = null;
       try {
   smdate=sdf.parse(sdf.format(date));
  } catch (ParseException e) {
   e.printStackTrace();
  }  
       Calendar cal = Calendar.getInstance();    
       cal.setTime(smdate);    
       cal.add(Calendar.MONTH, month);
       return sdf.format(cal.getTime());
 }

 

 

-------------------------------------------------------------------------------------------------------------
   /* 计算两个日期之间相差的月(自然月==天数不满30天也算成是一个月,即向上取整) 

    * 假如最小时间为1.30 较大时间为2.28  相差的月份为2月

    * 假如最小时间为1.29 较大时间为2.28  相差的月份为2月

    * 假如最小时间为1.31 较大时间为6.30  相差的月份为6月
    * @param smdate 较小的时间 
    * @param bdate  较大的时间 
    * @return 相差月份 
    * @throws ParseException  
    */    
   public void monthsBetween(Date smdate,Date bdate)    
   {    
      SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
     Date smdate = null;
     Date bdate = null;
        try {
    smdate=sdf.parse("2013-01-20");
    bdate=sdf.parse("2013-04-21");  
   } catch (ParseException e) {
    e.printStackTrace();
   }  
        Calendar cal = Calendar.getInstance();    
        cal.setTime(smdate);
        long yeartime1 = cal.get(Calendar.YEAR);
        long time1 = cal.get(Calendar.MONDAY)+1;              
        long daytime1= cal.get(Calendar.DAY_OF_MONTH);
        cal.setTime(bdate);    
        long yeartime2 = cal.get(Calendar.YEAR);
        long time2 = cal.get(Calendar.MONDAY)+1;         
        long daytime2= cal.get(Calendar.DAY_OF_MONTH);
        long between_year = Math.abs(yeartime2-yeartime1);
        long between_months = 0;
        if(time2-time1>=0){
         between_months=time2-time1;
        }else{
         between_year--;
         between_months = 12-time1+time2;
        }
        if(daytime2-daytime1>0){
         between_months++;
        }
        if(between_year>0){
         between_months+=between_year*12;
        }

        Calendar call = Calendar.getInstance();    
              call.setTime(smdate);    
              call.add(Calendar.MONTH, Integer.parseInt(String.valueOf(between_months)));
              long addDate = call.get(Calendar.DAY_OF_MONTH);
              if(addDate == daytime2){
                  between_months++;
              }
        System.out.println(between_months);
          
   }    

分享到:
评论

相关推荐

    Java 计算两个日期之间相差的月数

    System.out.println("两个日期相差的月数:" + monthsDifference); } } ``` 在这个例子中,我们创建了两个`LocalDate`对象`date1`和`date2`,然后使用`ChronoUnit.MONTHS.between()`方法计算它们之间的月数差。...

    计算两个日期相差的天数

    计算两个日期相差的天数 本文主要介绍了计算两个日期相差的天数的方法,使用 Java 语言实现,并提供了三个相关代码示例。 计算两个日期相差的天数 计算两个日期相差的天数是一个常见的需求,例如计算两个日期之间...

    js计算两个日期相差几周

    ### JavaScript 计算两个日期相差几周的知识点详解 在日常开发工作中,我们经常会遇到需要处理日期的问题,比如计算两个日期之间的差距等。本篇文章将详细介绍如何使用JavaScript编写一个函数来计算两个日期之间...

    Android 获取2个日期相差天数

    这个任务可以通过编程实现,本文将详细讲解如何在Android环境中获取两个日期相差的天数。 首先,我们需要了解Java中的日期处理类,主要涉及到`java.util.Date`和`java.text.SimpleDateFormat`。`Date`类用于表示...

    计算2个日期相差天数、去除节假日周末

    首先,我们需要一个日期类(Date Class)来表示日期,它至少应包含年、月、日这三个属性。我们可以创建一个结构体或类,如`Date`,并提供相应的构造函数、比较运算符和输出方法。例如: ```cpp struct Date { int ...

    java中计算两个日期相差几天

    本篇文章将详细介绍如何在Java中计算两个日期相差几天,并深入探讨示例代码中的关键概念和技术细节。 #### 示例代码分析 给出的示例代码提供了一个名为`Test`的类,该类包含一个名为`dateDiff`的方法,用于计算两...

    C# 计算两个日期之间相差的天数

    用C#计算两个日期之间相差的天数,通过TimeSpan进行计算比较简单

    计算两个时间相差多少年月日的sql算法

    本文将详细介绍如何使用SQL来实现计算两个日期相差多少年、月、日的方法,并通过具体的示例代码来帮助理解这一过程。 ### 一、背景介绍 在实际应用中,我们经常需要知道两个日期之间相差的具体年数、月数和天数,...

    java比较两个日期相差的天数

    calendar 比较2个日期相差的天数 还可以比较相差的秒数天数

    Java中计算两个日期相差天数和比较2日期先后顺序

    ### Java中计算两个日期相差天数 在Java中,计算两个日期之间相差的天数是一项常见且实用的功能。本文将详细介绍如何使用`SimpleDateFormat`、`Date`以及`Calendar`类来实现这一功能。 #### 代码解读 首先,我们...

    日期处理,比较两个日期相差的天数,月份,年份

    日期处理,比较两个日期相差的天数,月份,年份,jdk1.8新特性

    计算日期相差天数

    这个任务的标题"计算日期相差天数"直指一个基本的日期处理功能。在描述中提到的"输出开始时间,输入总共天数;每个月多少天和到什么时间结束",暗示我们需要实现一个程序或功能,它不仅能够计算日期间隔,还能处理...

    比较两个日期之间相差的天数

    ### 比较两个日期之间相差的天数 在Java编程语言中,比较两个日期之间的差值是一个常见的需求,尤其是在处理日历相关的功能时。本文将详细介绍如何在Java中计算两个日期之间的天数差,并对给出的代码进行解析。 ##...

    比较两个日期相差多少秒的几种方法

    `EncodeDateTime` 函数通常用于组合年、月、日、小时、分钟、秒和毫秒等组件,形成一个日期时间值。你可以分别对两个日期调用此函数,然后用第二个日期时间值减去第一个,得到一个表示两者之间差值的`TDateTime`值...

    输入日期,就算两个日期相差几天

    "输入日期,就算两个日期相差几天"这个话题涉及到日期和时间的计算,这是一个基础且实用的技能。下面将详细介绍如何进行日期差计算以及计算星期的方法。 1. **日期差计算**: 在Python中,我们可以使用内置的`...

    JS简单获取日期相差天数的方法

    最终,该代码段会输出“347”,表示两个日期相差的天数。 除了本文介绍的方法外,还可以通过使用其他在线工具来帮助我们计算日期差。例如,提供的链接中包含了多个在线日期和天数计算器,这些工具可以通过网页直接...

    Java日期工具类

    16、计算传入的两个日期之间相差的天数 17、根据传入的年月返回该月的第一天 18、根据传入的年月返回该月最后的一天 19、获得当前月份的第一天 20、获得当前月份的最后一天 21、获取上月的第一天 22、获取上月的最后...

    PHP计算两个日期相差几个月多余几天

    PHP计算两个日期相差几个月多余几天

    Excel使用DATEVALUE计算借款日期与还款日期相差的天数.docx

    按回车键即可根据还款日期和借款日期计算借款日期与还款日期相差的天数间隔。 DATEVALUE 函数的主要功能是将以文本表示的日期转换成一个序列号。这个序列号可以用来计算日期之间的差异,使得日期的计算变得非常...

    Delphi 计算两个日期之间的时间差(天数).rar

    在Delphi中,日期和时间通常用TDateTime类型表示,这是一个双精度浮点数,其值范围从公元前4713年1月1日到公元9999年12月31日。每个日期对应于这个数轴上的一个位置,其中0表示公元1年1月1日。 要计算两个日期之间...

Global site tag (gtag.js) - Google Analytics