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()里循环条件的大小即可。

posted @   名一  阅读(1776)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示