博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
计算过去的最近几个月
阅读量:5121 次
发布时间:2019-06-13

本文共 1304 字,大约阅读时间需要 4 分钟。

遇到个需求就是计算过去的6个月是哪几个月 开始随便从网上找了个,  

public static String[] getLastMonths(Calendar theCal) {    String[] lastMonths = new String[6];    Calendar cal = theCal;//Calendar.getInstance();    cal.set(Calendar.MONTH, cal.MONTH); //要先+1,才能把本月的算进去        for(int i=0; i<6; i++){      cal.set(Calendar.MONTH, cal.get(Calendar.MONTH)-1); //逐次往前推1个月      String t = cal.get(Calendar.YEAR)+ "-" + fillZero((cal.get(Calendar.MONTH)+1), 2);            lastMonths[5-i] = t.replace("-", "");    }        return lastMonths;  }

 

但是运行时候出现了连续的问题,输入为201908时,会输出 201907 201907 201906 201905 201904 201903

或者 201907 201906 201905 201904 201904 201903

后来又写了个:

正确的月份-1

 

public static String[] getLastMonths(Calendar theCal) {    String[] lastMonths = new String[6];    Calendar cal = theCal;//Calendar.getInstance();    cal.set(Calendar.MONTH, cal.get(Calendar.MONTH)); //要先+1,才能把本月的算进去        for(int i=0; i<6; i++){      cal.add(Calendar.MONTH, -1); //逐次往前推1个月      String t = cal.get(Calendar.YEAR)+ "-" + fillZero((cal.get(Calendar.MONTH)+1), 2);            lastMonths[5-i] = t.replace("-", "");    }        return lastMonths;  }

 

 

怀疑是cal.set(Calendar.MONTH, cal.get(Calendar.MONTH)-1);的初始化有问题,老是慢一拍,感觉有的时候这个-1并不能正常执行,就开始向下执行了,

所以,还是用这个正常的吧, cal.add(Calendar.MONTH, -1); //逐次往前推1个月

转载于:https://www.cnblogs.com/1394htw/p/11407167.html

你可能感兴趣的文章
使用Xshell密钥认证机制远程登录Linux
查看>>
OpenCV之响应鼠标(三):响应鼠标信息
查看>>
Android 画图之 Matrix(一)
查看>>
List<T>列表通用过滤模块设计
查看>>
【模板】最小生成树
查看>>
设计模式之结构型模式
查看>>
poj2569
查看>>
使用pygal_maps_world.i18n中数据画各大洲地图
查看>>
sql server必知多种日期函数时间格式转换
查看>>
jQuery EasyUI 的下拉选择combobox后台动态赋值
查看>>
timeline时间轴进度“群英荟萃”
查看>>
python if else elif statement
查看>>
网络编程
查看>>
文本隐藏(图片代替文字)
查看>>
java面试题
查看>>
提高码力专题(未完待续)
查看>>
pair的例子
查看>>
前端框架性能对比
查看>>
@property中 retain 详解
查看>>
uva 387 A Puzzling Problem (回溯)
查看>>