java 怎样获取每个月的第一天和最后一天

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 怎样获取每个月的第一天和最后一天相关的知识,希望对你有一定的参考价值。

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 
//获取前月的第一天
Calendar   cal_1=Calendar.getInstance();//获取当前日期 
cal_1.add(Calendar.MONTH, -1);
cal_1.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天 
firstDay = format.format(cal_1.getTime());
System.out.println("-----1------firstDay:"+firstDay);

//获取前月的最后一天
Calendar cale = Calendar.getInstance();   
cale.set(Calendar.DAY_OF_MONTH,0);//设置为1号,当前日期既为本月第一天 
lastDay = format.format(cale.getTime());
System.out.println("-----2------lastDay:"+lastDay);

//获取当前月第一天:
Calendar c = Calendar.getInstance();    
c.add(Calendar.MONTH, 0);
c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天 
String first = format.format(c.getTime());
System.out.println("===============first:"+first);

//获取当前月最后一天
Calendar ca = Calendar.getInstance();    
ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));  
String last = format.format(ca.getTime());
System.out.println("===============last:"+last);

追问

能用循环写吗?从 18年1月开始到12月

参考技术A package com.test.packager;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;

public class Test
private static String firstDay;
private static String lastDay;
public static void main(String[] args)
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

//获取前月的第一天
Calendar cal_1=Calendar.getInstance();//获取当前日期
cal_1.add(Calendar.MONTH, -1);
cal_1.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
firstDay = format.format(cal_1.getTime());
System.out.println("-----1------firstDay:"+firstDay);
//获取前月的最后一天
Calendar cale = Calendar.getInstance();
cale.set(Calendar.DAY_OF_MONTH,0);//设置为1号,当前日期既为本月第一天
lastDay = format.format(cale.getTime());
System.out.println("-----2------lastDay:"+lastDay);

//获取当前月第一天:
Calendar c = Calendar.getInstance();
c.add(Calendar.MONTH, 0);
c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
String first = format.format(c.getTime());
System.out.println("===============first:"+first);

//获取当前月最后一天
Calendar ca = Calendar.getInstance();
ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
String last = format.format(ca.getTime());
System.out.println("===============last:"+last);


/**
* 字符串的日期格式的计算
*/
public static int daysBetween(String smdate,String bdate) throws ParseException
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.setTime(sdf.parse(smdate));
long time1 = cal.getTimeInMillis();
cal.setTime(sdf.parse(bdate));
long time2 = cal.getTimeInMillis();
long between_days=(time2-time1)/(1000*3600*24);
return Integer.parseInt(String.valueOf(between_days));

参考技术B 每个城市都有吧,成都当然也是有的,我家就是成都的,房子装修之后也做了甲醛治理,找的是绿色家缘,推荐

java-通过年月,获取到月的第一天和最后一天

传入年和月,获取到本月的第一天:

     /**
      * 获取指定年月的第一天
      * @param year
      * @param month
      * @return
      */
     public static String getFirstDayOfMonth1(int year, int month) {     
         Calendar cal = Calendar.getInstance();   
         //设置年份
         cal.set(Calendar.YEAR, year);
         //设置月份 
         cal.set(Calendar.MONTH, month-1); 
         //获取某月最小天数
         int firstDay = cal.getMinimum(Calendar.DATE);
         //设置日历中月份的最小天数 
         cal.set(Calendar.DAY_OF_MONTH,firstDay);  
         //格式化日期
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         return sdf.format(cal.getTime());  
     }

 

传入年和月,获取到本月的最后一天:

/**
     * 获取指定年月的最后一天
     * @param year
     * @param month
     * @return
     */
     public static String getLastDayOfMonth1(int year, int month) {     
         Calendar cal = Calendar.getInstance();     
         //设置年份  
         cal.set(Calendar.YEAR, year);  
         //设置月份  
         cal.set(Calendar.MONTH, month-1); 
         //获取某月最大天数
         int lastDay = cal.getActualMaximum(Calendar.DATE);
         //设置日历中月份的最大天数  
         cal.set(Calendar.DAY_OF_MONTH, lastDay);  
         //格式化日期
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");  
         return sdf.format(cal.getTime());
     }

 

以上是关于java 怎样获取每个月的第一天和最后一天的主要内容,如果未能解决你的问题,请参考以下文章

js如何获取上个月第一天和最后一天

如何使用js获取某月的第一天和最后一天

js 获取当前月和当前周的第一天和最后一天

JAVA获取前一个月的第一天和最后一天

java-通过年月,获取到月的第一天和最后一天

java获取每个月最后一天的日期