公司做的项目要求选择日期可以选择上一个月的,很简单,但是涉及到临界日期,例如跨年

直接的问题从2019.1.1往前一个月那就不简单了,于是找到相关方法自己尝试下。理解出了两个往前一年的区别

看下图:

方法一:

方法二:

上代码:

//方法一:往前一年就是365天,往前一个月就是30天
c.add(Calendar.MONTH, -1);
//方法二:往前一年就是2019年直接更改为2018天,往前一个月就是1月直接改为12月if (c.get(Calendar.MONTH) == 0) {
//如果当前月份为1月份,那么应该年份往前推一年,例如2019.1.21,往前一个月应该是2018.12.21,所以年份也得减一c.roll(Calendar.YEAR, false);c.roll(Calendar.MONTH, false);} else {c.roll(Calendar.MONTH, false);}

如上面代码所示:

方法有两种:

方法一是仅仅往前数365天一年整(一个月30天),而方法二则是仅仅年份数据的变化类似于2019直接改为2018,类似于日历往前翻一个月,往前翻一年(12个月)

感谢博主提供第二种方法:

博主直达

Android开发之Java和Calendar日期上一年,上一个月,前一天,前一周的方法相关推荐

  1. 根据指定日期获取上一个月

    根据指定日期获取上一个月 看过不少类似文章,根据一个日期,要取得相应的上一个月的值,则利用Calendar的api:get(Calendar.MONTH) - 1)来算. 思路是对的,但这个api有坑 ...

  2. Java获取当前时间的上一个月和下一个月,第一天和最后一天,任意时间的第一天和最后一天,任意时间上一个月和下一个月

    /*** 获取当前时间* * @param args*/public static String getNowTime() {Calendar cal = Calendar.getInstance() ...

  3. android java设计模式,Android开发之Java设计模式基础篇

    今日我们就Android开发中的一些设计模式做一些 根底性的 主宰,本次就Android项 目标架构设计 有关内容做 综合: 1. 静态工厂 步骤 静态工厂 步骤 可以算是工厂 步骤加单例模式的整合在 ...

  4. Android开发之仿QQ表情实现(上)

    大家晚上好,,小鹿又来了..最近小鹿特别忙,忙到没时间发表博客了(注:以下内容过于简单请大家不要喷,仅提供初学者学习) 今天发表两篇文章,分别是讲解模拟QQ表情的实现,先给大家看效果图,,,, 开始了 ...

  5. Java获取当前月的上一个月

    public String getLastMonth() {         SimpleDateFormat format = new SimpleDateFormat("yyyyMM&q ...

  6. Android开发之Java集合类性能分析

    对于Android开发者来说深入了解Java的集合类很有必要主要是从Collection和Map接口衍生出来的,目前主要提供了List.Set和 Map这三大类的集合,今天就他们的子类在标准情况和多线 ...

  7. 安卓开发之Java基础(1)——第一个Java程序

    1.计算机软件和硬件:  ①计算机软件可以使计算机按照事先预定好的顺序额完成特定的功能,按照功能可以划分为:系统软件{DOS(Disk Operating System).Windows.Linux. ...

  8. Android开发之Java的IO流读写的十种方法

    直接上代码: package com.xiayiye.honorfirst.io;import java.io.BufferedInputStream; import java.io.Buffered ...

  9. Android开发之Java基础JVM和ClassLoader以及类加机制面试题

    在面试中被问到Java相关的东西非常多: 首先说下Java内存模型: 主要由: 程序计数器,Java虚拟机栈,本地方法栈=>被线程私有 方法区 堆组成=>被线程共有 Java类加载机制Cl ...

最新文章

  1. iPhone中字符串的国际化
  2. BASE64每76个字符自动换行
  3. pcie转sata3硬盘不启动_没有地方塞硬盘?你或许需要这款扩展卡
  4. 问题集锦(46-47)
  5. 再谈网游同步技术:实时动作游戏同步方式和传输协议选择
  6. mysql从zip包安装小记
  7. 数据结构-编程实现一个双链表的建立,双链表的打印,双链表的测长
  8. 秒懂 QPS、TPS、PV、UV、GMV、IP、RPS!
  9. python怎么导入os模块_python之os模块
  10. 自动打卡python脚本_[python][企业微信]企业微信自动打卡Python脚本,价值一万元的自动打卡脚本...
  11. 【Roboware编译(小锤子)无法选择Debug选项】
  12. 3D建模,打印正当时
  13. 一个简单的BitTorrent客户端实现(五):tracker manager和tracker实现
  14. python读取HTML文本文件
  15. 【转载】正交实验法表格
  16. 额外学习:python字符串的各种方法
  17. ViewModel是如何在配置更改后继续留存数据的
  18. Android【Retrofit(HTTP客户端),RxJAVA(响应式编程)】
  19. 网络七层模型与物联网三层模型
  20. 悦然建站分享:破解版的宝塔面板可以使用吗?

热门文章

  1. 国学精典书籍阅读记录
  2. java中throws用法_java中throws实例用法详解
  3. s7.net 写数据到plc_西门子1200复位PLC、欧姆龙常见问题解答
  4. jz2440-uboot-201204版本移植【学习笔记】【原创】
  5. java安装jdk错误1316 指定的账户已存在
  6. Python里的map、reduce、filter、lambda、列表推导式
  7. MockupBuilder
  8. android开发国内镜像
  9. Eclipse 集成gtk开发环境
  10. Eclipse maven工程 Missing artifact com.sun:tools:jar:1.5.0:system 解决方法