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 ...
随机推荐
- Linux Page Cache调优在Kafka中的应用
本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/MaeXn-kmgLUah78brglFkg作者:Yang Yijun 本文主要描述Linux ...
- ElementUI - <el-table> 表格 selection 设置的复选框禁止选中某些行
https://blog.csdn.net/weixin_44198965/article/details/119026054
- LaTex · overleaf | 使用技巧存档
如何使用 bibtex:http://www.taodudu.cc/news/show-5832925.html?action=onClick bibtex 格式:https://blog.csdn. ...
- zipkin 与 sleuth 实现链路追踪
本文为博主原创,转载请注明出处 1.Zipkin 与 Sleuth 简介 zipkin 的官网地址: https://zipkin.io/ Zipkin 和 Sleuth 都是由 Twitter 开源 ...
- wireshark 显示过滤表达式
转载请注明出处: 1.根据协议过滤: 在显示过滤表达式的输入框中直接输入对应的协议类型即可:http tcp udp 2.根据 IP 过滤: 根据源IP地址过滤:如源地址IP为:127.0.0. ...
- shell-命令行位置参数-$n
- Chrony 的学习与使用
Chrony 的学习与使用 背景 之前捯饬 ntp 发现很麻烦, 经常容易弄错了. 昨天处理文件精确时间时 想到了时间同步. 发现只有自己总结的ntpdate 但是还没有 chronyd相关的总结 本 ...
- [转帖]CentOS-7-x86_64-Everything-2009 rpm包列表(CentOS7.9)
CentOS-7-x86_64-Everything-2009 rpm包列表(CentOS7.9) 共10073个文件 复制389-ds-base-1.3.10.2-6.el7.x86_64.rpm ...
- [转帖]NVMe 与 AHCI
https://www.cnblogs.com/zengkefu/p/5634345.html http://elf8848.iteye.com/blog/1731274 AHCI: NCQ技术,60 ...
- [转帖]使用SkyWalking监控nginx (以openresty为例)
https://www.cnblogs.com/hahaha111122222/p/15829737.html 安装使用SkyWalking先看这篇文章,地址:https://www.cnblogs. ...