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个日期里面的所有月份的更多相关文章

  1. Java获取当前的日期和时间

    Java获取当前的日期和时间 1.具体实现方法如下 /** * @Title:DateTime.java * @Package:com.you.model * @Description:获取当前的日期 ...

  2. java 获取两个日期之间的所有日期(年月日)

    前言:直接上代码 java 获取两个日期之间的所有日期(年月日) /** * 获取两个日期之间的日期,包括开始结束日期 * @param start 开始日期 * @param end 结束日期 * ...

  3. java获取两个日期之间的所有日期

    java获取两个日期之间的所有日期   解决方法: 1.核心方法 private List<String> getBetweenDates(String start, String end ...

  4. JS[获取两个日期中所有的月份]

    //------[获取两个日期中所有的月份中] function getMonthBetween(start,end){ var result = []; var s = start.split(&q ...

  5. Java 获取两个日期之间的日期

    1.前期需求,两个日期,我们叫他startDate和endDate,然后获取到两个日期之间的日期 /** * 获取两个日期之间的日期 * @param start 开始日期 * @param end ...

  6. java计算两个日期之间相隔的月份(向下取整)

    最近需求里面有个需要计算两个日期之间相隔的月份,写起来还挺繁琐,需要将各种情况都要考虑到,写了一个作为以后自己的工具吧. //获取哪一天 public static int getDay(Date d ...

  7. java获取字符串格式日期向前或向后n天的日期

    private void setTilteMessage(){          BaseDao dao = new BaseDao();          String titleData = da ...

  8. java 获取两个日期相差的毫秒数

    方法一可以使用date的getTime()方法来将当前日期格式的时间转换为毫秒数,进而相减. long systime = new Date().getTime();//当前系统时间        l ...

  9. Java获取两个日期之间的所有日期集合

    1.返回Date的list private List<Date> getBetweenDates(Date start, Date end) { List<Date> resu ...

随机推荐

  1. 翻转链表中相邻的k个节点

    示例: 输入:1->2->3->4->5 k=2 输出:2->1->4->3->5 k=3输出:3->2->1->4->5 Py ...

  2. 利用idea创建一个基本的smm项目(带增删改查)

    环境  idea  jdk1.8  tomcat  mysql 打开idea选择创建一个maven项目 然后点击next,next,finsh 然后看项目的结构 如图所示 接着创建com包,再在com ...

  3. 慕课笔记-Java入门第三季

    1.自定义异常 自定义异常必须继承Exception类或者其子类. 2.字符串 String对象创建后则不能被修改,是不可变的,所谓的修改其实是创建了新的对象. 多次创建的字符常量,Java编译程序只 ...

  4. sessionStorage 、localStorage

    localStorage和sessionStorage使用时使用相同的API: localStorage.setItem("key","value");//以“ ...

  5. DRF教程4-视图集和路由类

    rest框架包括一个处理viewset的抽象,允许开发人员集中精力处理api交互和建模,url构造都根据常见方式自动处理. ViewSet类 几乎和VIew类一样,不过它提供read,update这样 ...

  6. JMETER通过java代码通过代码/ JMETER API实现示例进行负载测试

    本教程试图解释Jmeter的基本设计,功能和用法,Jmeter是用于在应用程序上执行负载测试的优秀工具.通过使用jmeter GUI,我们可以根据我们的要求为请求创建测试样本并执行具有多个用户负载的样 ...

  7. POJ3744(概率dp)

    思路:一长段概率乘过去最后会趋于平稳,所以因为地雷只有10个,可以疯狂压缩其位置,这样就不需要矩阵乘优化了.另外初始化f[0] = 0, f[1] = 1,相当于从1开始走吧.双倍经验:洛谷1052. ...

  8. oracle dual是个什么表

    这几天一直在研究oracle,常常会用到dual这个系统表,dual表到底是一个什么表?带着疑问查了百度了一下,现在总结一下:DUAL是Oracle与数据字典一起自动创建的一个表,它只有一列:DUMM ...

  9. thinkPHP--模块分组

    启用分组模块非常简单,配置下APP_GROUP_LIST参数和DEFAULT_GROUP参数即可. 'APP_GROUP_LIST'=>'Admin,Home', 'DEFAULT_GROUP' ...

  10. 在ASP.NET中,后台代码向页面写HTML代码

    Literal lt = new Literal();lt.Text = "<a href=\"http://www.czbin.cn\">czbin的博客& ...