java两个日期取小_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 monthArea = getMonthArea(t1,t2);

for(String t : monthArea) {

System.out.println(t);

}

}

private static List getMonthArea(String t1,String t2) {

LocalDate startDate = LocalDate.parse(t1);

LocalDate endDate = LocalDate.parse(t2);

List 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 monthArea,int startYear,int startMonth) {

for(int i=startMonth;i<=12;i++) {

monthArea.add(startYear+"-"+getMyMonth(i));

}

}

private static void calcOneYear(List monthArea,int year) {

for(int i=1;i<=12;i++) {

monthArea.add(year+"-"+getMyMonth(i));

}

}

private static void calcEndYear(List 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;

}

原文:https://www.cnblogs.com/liw66/p/10209294.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值