java获取最近12个月月份
最近在做一个换电站管理的项目,其中有一个大屏折线图。要求计算近12个月的数据。所以,就需要写一个生成近12个月月份的算法。算法如下。
一:编写生成近12个月月份的算法

二:编写判断当天是否是月初的算法

三:格式化月份

二:算法代码如下
/**
* 获取最近12个月月份
*/
public static List<String> getOneMonth() {
List<String> monthList = new ArrayList<>();
Calendar calendar = Calendar.getInstance();
//1号就从上个月开始算
int num = 1;
if (isFirstDayOfMonth(calendar)){
num = 0;
}
calendar.set(Calendar.MONTH,calendar.get(Calendar.MONTH)+num);
for (int i = 0; i < 12; i++) {
calendar.add(Calendar.MONTH, -1);//1个月前
String month = calendar.get(Calendar.YEAR)+"-"+fillZero(calendar.get(Calendar.MONTH)+1);
monthList.add(month);
}
Collections.reverse(monthList);
return monthList;
}
/**
* 判断今天是否是1号
* @param calendar 日历对象
* @return 是否第一天
*/
public static boolean isFirstDayOfMonth(Calendar calendar){
calendar.setTime(new Date());
calendar.set(Calendar.DATE,calendar.get(Calendar.DATE)+1);
if(calendar.get(Calendar.DAY_OF_MONTH) == 2){
return true;
}else{
return false;
}
}
/**
* 格式化月份
*/
public static String fillZero(int i){
String month = "";
if(i<10){
month = "0" + i;
}else{
month = String.valueOf(i);
}
return month;
}
到此,获取近12个月的教程就结束了。此方法还可以根据实际业务场景动态调整要获取月份范围大小,只需改变getOneMonth()里循环条件的大小即可。
java获取最近12个月月份的更多相关文章
- 【转】java获取当前年、月、日 、小时 、分钟、 秒、 毫秒
public class Test { /** * 英文简写(默认)如:2010-12-01 */ public static String FORMAT_SHORT = "yyyy-MM- ...
- java获取本月或某月的第一天和最后一天
获取某月的第一天和最后一天的日期 Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(Ca ...
- Java获取当前日期的前一个月,前一天的时间
Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE, -); //得到前一天 calendar.add(Cal ...
- java获取某段时间内的月份列表
/**获取两个时间节点之间的月份列表**/ private static List<String> getMonthBetween(String minDate, String maxDa ...
- Java获取近7个月的起止时间
话不多说,直接上代码 public class Test { @org.junit.Test public void tets() { SimpleDateFormat format = new Si ...
- PHP获取指定时间的前6个月月份 、获取前6天日期
//获取前6个月月份 public function to_sex_month(){ $today = input('param.today') ? input('param.today') : da ...
- Javascript获取最近若干个月
整理: 如果需要获取最近若干个月,牵扯到跨年的话,该怎么实现的问题,抽了点时间,代码如下: /**纪元时间获取最近12个月 * * @num 传入获取月的数目 **/ (function getMon ...
- Java获取某年某月的第一天
Java获取某年某月的第一天 1.设计源码 FisrtDayOfMonth.java: /** * @Title:FisrtDayOfMonth.java * @Package:com.you.fre ...
- Java获取某年某月的最后一天
Java获取某年某月的最后一天 1.设计源码 LastDayOfMonth.java: /** * @Title:LastDayOfMonth.java * @Package:com.you.free ...
- java获取指定月份有几个星期x,获取指定月份跨了多少个星期
例如获取2020年5月一共有多少个星期二,一共跨了多少个星期 public class MainTest { public static void main(String[] args) throws ...
随机推荐
- vivo 应用商店推荐系统探索与实践
介绍 vivo 应用商店推荐系统如何高效支撑个性化的推荐需求. 一.前言 商店的应用数据主要来源于运营排期.CPD.游戏.算法等渠道,成立推荐项目之后也没有变化,发生变化的是由推荐系统负责和数据源进行 ...
- OAuth2.0回调函数用html页面转发给controller
OAuth2.0授权中有个回调函数,就是请求授权服务后,它会将你需要的code(假设code就是你需要的数据)发送给你的回调函数(你对外开放的一个url地址用以接收参数) 注:这个回调函数有点讨厌为什 ...
- 深度学习(三)——Transforms的使用
一.Transforms的结构及用法 导入transforms from torchvision import transforms 作用:图片输入transforms后,可以得到一些预期的变换 1. ...
- 嵌入式Linux必读经典书籍(含下载方式)
最近,在知乎看到一个问题,"嵌入式Linux有哪些好书推荐".我读研期间也喜欢收藏一些书籍,每次看到京东有活动,总是忍不住想买一些书籍回来. 随着时间越来越久,我买的书越来越多,但 ...
- freeswitch号码变化方案
概述 freeswitch是一款简单易用的开源音视频软交换平台. 在生产环境中,由于各个线路的号码规则并不统一,经常需要针对中继线路做号码变换的方案. 本文主要介绍fs中有哪些可选的号码变换方案. 环 ...
- freeswitch自带yum源配置方式
概述 在开发过程中,我们使用freeswitch源代码编译安装的方式比较多,这种方式适合对fs比较了解,有一定基础的研发人员. 但是,对于希望快速上手使用fs普通功能的人员来说,源代码编译的方式就过于 ...
- 【Freertos】任务切换分析
任务切换实现 xPortPendSVHandler: mrs r0, psp // 获取进入异常时的进程栈 isb ldr r3, =pxCurrentTCB // 加载线程控制块地址到r3 ldr ...
- 【TouchGFX】Callback
回调函数模板定义 单参数回调函数模板 实现回调函数接口: 实现合法性检查接口: 实现执行接口: 按键触发回调实现 定义回调数据结构对象 使用回调数据结构构造函数 执行接口实现 整个切换机制的管理主体对 ...
- pybind11
fatal error: Python.h: no such file or directory 在使用pybind11时,如果不做调整可能就会出现这样的情况,Python.h一般出现在usr/inc ...
- Go-发送邮件
1. 邮件 - mail From -- 发送者(这封邮件由谁进行发送的,一般都是该邮件的作者) To -- 邮件的接收者(发送邮件的人希望谁能收到邮件) Subject -- 邮件的主题(类似文章的 ...