• java日期增加一个月或减少一天


    一个Date类型的日期,希望在它基础上增加一个月,赋值给另外一个变量,这个时候该如何处理

        /**** 
         * 传入具体日期 ,返回具体日期增加一个月。 
         * @param date 日期(2017-04-13) 
         * @return 2017-05-13
         * @throws ParseException 
         */  
        private  String subMonth(String date) throws ParseException {  
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");  
            Date dt = sdf.parse(date);  
            Calendar rightNow = Calendar.getInstance();  
            rightNow.setTime(dt);  
            rightNow.add(Calendar.MONTH, 1);  
            Date dt1 = rightNow.getTime();  
            String reStr = sdf.format(dt1);  
            return reStr;  
        }

    可以看到 传入参数为 2017-04-13 输出结果为 2017-05-13 比原先增加了一个月,符合预期效果。

    如果希望减少一个月  修改代码为  rightNow.add(Calendar.MONTH, -1); 负数即为减少的值

    那么我们又希望在原来日期基础上增加或减少一天,又该如何实现呢? 看以下代码

     /**** 
      * 传入具体日期 ,返回具体日期减少一天 
      * @param date 日期(2017-04-13) 
      * @return 2017-04-12
      * @throws ParseException 
      */  
     private  String subDay(String date) throws ParseException {  
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");  
         Date dt = sdf.parse(date);  
         Calendar rightNow = Calendar.getInstance();  
         rightNow.setTime(dt);  
         rightNow.add(Calendar.DAY_OF_MONTH, -1);  
         Date dt1 = rightNow.getTime();  
         String reStr = sdf.format(dt1);  
         return reStr;  
     }
    

    输入日期 2017-04-13 输出日期 2017-04-12 比原来减少了一天,符合预期 。

    如果我们希望增加一天 或几天 只需要修改 rightNow.add(Calendar.DAY_OF_MONTH, 1);  正数即为增加天数。

  • 相关阅读:
    [linux] 内存检测
    [思维]牛客编程巅峰赛S1第6场
    [逆序数, 思维]牛客编程巅峰赛S1第5场
    [Linux] TrafficControl 流量控制
    [linux]常用指令
    [带权并查集]小白月赛25-C 白魔法师
    初窥原型
    性能测试流程
    JMeter服务器监控技术
    使用Fiddler进行HTTPS抓包和手机APP抓包
  • 原文地址:https://www.cnblogs.com/xiaoniuniu886/p/10144045.html
Copyright © 2020-2023  润新知