Java获取2个日期里面的所有月份
public static void main(String[] args) {
String t1="2018-08-01";
t1 = t1.replaceAll("(\\d{4})\\-(\\d{2})\\-\\d{2}", "$1-$2-01");
//String t2="2024-11-30";
//String t2="2018-01-30";
//String t2="2019-09-30";
String t2 = "2019-09-31";
t2 = t2.replaceAll("(\\d{4})\\-(\\d{2})\\-\\d{2}", "$1-$2-01");
List<String> monthArea = getMonthArea(t1,t2);
for(String t : monthArea) {
System.out.println(t);
}
}
private static List<String> getMonthArea(String t1,String t2) {
LocalDate startDate = LocalDate.parse(t1);
LocalDate endDate = LocalDate.parse(t2);
List<String> monthArea = new ArrayList<>();
if (startDate.compareTo(endDate)>0) {
return monthArea;
}
int startYear = startDate.getYear();
int startMonth = startDate.getMonthValue();
int endYear = endDate.getYear();
int endMonth = endDate.getMonthValue();
if (startYear==endYear) {
for(int i=startMonth;i<=endMonth;i++) {
monthArea.add(startYear+"-"+getMyMonth(i));
}
}else {
for(int i=startYear;i<=endYear;i++) {
if (i == startYear ) {
calcStartYear(monthArea,startYear,startMonth);
}else if (i == endYear){
calcEndYear(monthArea,endYear,endMonth);
}else {
calcOneYear(monthArea,i);
}
}
}
return monthArea;
}
private static void calcStartYear(List<String> monthArea,int startYear,int startMonth) {
for(int i=startMonth;i<=12;i++) {
monthArea.add(startYear+"-"+getMyMonth(i));
}
}
private static void calcOneYear(List<String> monthArea,int year) {
for(int i=1;i<=12;i++) {
monthArea.add(year+"-"+getMyMonth(i));
}
}
private static void calcEndYear(List<String> monthArea,int endYear,int endMonth) {
for(int i=1;i<=endMonth;i++) {
monthArea.add(endYear+"-"+getMyMonth(i));
}
}
private static String getMyMonth(int month){
String result = "";
if (month<10) {
result = "0" + Integer.toString(month);
}else {
result = Integer.toString(month);
}
return result;
}
Java获取2个日期里面的所有月份的更多相关文章
- Java获取当前的日期和时间
Java获取当前的日期和时间 1.具体实现方法如下 /** * @Title:DateTime.java * @Package:com.you.model * @Description:获取当前的日期 ...
- java 获取两个日期之间的所有日期(年月日)
前言:直接上代码 java 获取两个日期之间的所有日期(年月日) /** * 获取两个日期之间的日期,包括开始结束日期 * @param start 开始日期 * @param end 结束日期 * ...
- java获取两个日期之间的所有日期
java获取两个日期之间的所有日期 解决方法: 1.核心方法 private List<String> getBetweenDates(String start, String end ...
- JS[获取两个日期中所有的月份]
//------[获取两个日期中所有的月份中] function getMonthBetween(start,end){ var result = []; var s = start.split(&q ...
- Java 获取两个日期之间的日期
1.前期需求,两个日期,我们叫他startDate和endDate,然后获取到两个日期之间的日期 /** * 获取两个日期之间的日期 * @param start 开始日期 * @param end ...
- java计算两个日期之间相隔的月份(向下取整)
最近需求里面有个需要计算两个日期之间相隔的月份,写起来还挺繁琐,需要将各种情况都要考虑到,写了一个作为以后自己的工具吧. //获取哪一天 public static int getDay(Date d ...
- java获取字符串格式日期向前或向后n天的日期
private void setTilteMessage(){ BaseDao dao = new BaseDao(); String titleData = da ...
- java 获取两个日期相差的毫秒数
方法一可以使用date的getTime()方法来将当前日期格式的时间转换为毫秒数,进而相减. long systime = new Date().getTime();//当前系统时间 l ...
- Java获取两个日期之间的所有日期集合
1.返回Date的list private List<Date> getBetweenDates(Date start, Date end) { List<Date> resu ...
随机推荐
- STC单片机掉电断电失电瞬间EEPROM数据保存处理办法(转)
由于客户在请人设计开发一设备,但是设备用户处总停电,造成设备及其周边耗材损耗严重,因此请我司在现有STC为主要芯片的基础上做掉电瞬间EEPROM里的20个参数保存,上电后通过读取EEPROM中的参数回 ...
- iOS 利用模态视图实现带黑色蒙版的底部弹窗
本demo仅适用于iOS8及以上系统. 本文将使用autolayout+storyboard来实现弹窗 第一步.storyboard创建界面 1.打开storyboard 拖一个UIViewcontr ...
- Syncd-开源自动化部署工具
官网地址:https://gitee.com/dreamans/syncd/issues syncd是一款开源的代码部署工具,它具有简单.高效.易用等特点,可以提高团队的工作效率. 目前只支持类Lin ...
- java 8 lamda Stream的Collectors.toMap 参数
使用toMap()函数之后,返回的就是一个Map了,自然会需要key和value.toMap()的第一个参数就是用来生成key值的,第二个参数就是用来生成value值的.第三个参数用在key值冲突的情 ...
- STP-3-收敛到新的STP拓扑
事实上,即使拓扑已经稳定,STP也从未停止工作,对每个收到的BPDU,交换机都会重新计算自己对于根桥,RP,DP的选择.在稳定的拓扑中,交换机收到的BPDU不变,因此对这些BPDU的处理会一遍一遍产生 ...
- socket编程模拟linux下的ssh代码实现
实现思路: 1.提供输入指令的客户端: 2.提供返回执行指令结果的服务端 3.寻找服务端返回结果一次无法全部接收的解决思路 服务端代码(ssh_server.py) #coding=utf-8 imp ...
- 17115 ooxx numbers 交表
17115 ooxx numbers 时间限制:1000MS 内存限制:65535K提交次数:0 通过次数:0 题型: 编程题 语言: G++;GCC Description a number ...
- awk一些简单命令
最简单地说, AWK 是一种用于处理文本的编程语言工具.AWK 在很多方面类似于 shell 编程语言,尽管 AWK 具有完全属于其本身的语法. 尽管操作可能会很复杂,但命令的语法始终是: awk ' ...
- httpd.exe占用100%CPU
客户VPShttpd.exe进程占用100%CPU百度搜了下,很多文章: 在网上也没有能够直接找到比较好的解决方法,后来在一个帖子上看到说,有可能是apache与其他的软件冲突了(参考http://t ...
- 装饰者模式--Java篇
装饰者模式(Decorator):动态地给一个对象添加一些额外的职责,就增加功能来说,装饰者模式比生成子类更为灵活. 1.定义接口,可以动态的给对象添加职责. package com.lujie; p ...