1. 程式人生 > >java使用Calendar類獲取常用簡單工具類

java使用Calendar類獲取常用簡單工具類

凱哥java

前言:

在工作中,我們經常會用到時間相關的。比如月初、月末、年初、年末、指定月份所在季度的季末、當前時間加X天、x月、x年等這些常用的雖說不難,但是如果要用到,立馬又想不起來。這裏凱哥歸納了一些常用的放在一個工具類中。有需要的朋友可以拿去或是收藏。如果大家有更好的,歡迎留言。如果凱哥哪裏不對,歡迎大家留言罵起~。

聲明:本文有凱哥Java(www.kaigejava.com)發布於凱哥個人博客。

正文:

1:獲取指定日期 指定月份後的最後一天。返回格式:yyyyMMdd

技術分享圖片

獲取指定日期 指定月份後的最後一天

public static String getMaxMonthDate(String dateStr,String dftStr,int monthnum) {

if(StringUtils.isEmpty(dftStr)){

dftStr="yyyyMMdd";

}

SimpleDateFormat dft = new SimpleDateFormat(dftStr);

Calendar calendar = Calendar.getInstance();

try {

if(dateStr!=null && !"".equals(dateStr)){

calendar.setTime(dft.parse(dateStr));

}

} catch (ParseException e) {

e.printStackTrace();

}

calendar.add(Calendar.MONTH, monthnum);

calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));

return dft.format(calendar.getTime());

}

2:指定月份獲取對應月所在季度末。返回yyyyMMdd

技術分享圖片

2:指定月份獲取對應月所在季度末。返回yyyyMMdd

public String getThisSeasonEnd(String repeatDate,String dftStr) {

int xyear; // 日期屬性:年

int ymonth; // 日期屬性:月

SimpleDateFormat dft = new SimpleDateFormat(dftStr);

Calendar localTime = Calendar.getInstance();//獲取當前

String dateString = "";

try {

if(repeatDate!=null && !"".equals(repeatDate)){

localTime.setTime(dft.parse(repeatDate));//設置時間

}

xyear = localTime.get(Calendar.YEAR);

ymonth = localTime.get(Calendar.MONTH) + 1;

if (ymonth >= 1 && ymonth <= 3) {

dateString = xyear + "-" + "03" + "-" + "31";

}

if (ymonth >= 4 && ymonth <= 6) {

dateString = xyear + "-" + "06" + "-" + "30";

}

if (ymonth >= 7 &&ymonth <= 9) {

dateString = xyear + "-" + "09" + "-" + "30";

}

if (ymonth >= 10 && ymonth <= 12) {

dateString = xyear + "-" + "12" + "-" + "31";

}

} catch (ParseException e) {

e.printStackTrace();

}

return dateString.replace("-", "");

}

3: 獲取指定日期所在年份最後一天。返回格式yyyyMMdd

技術分享圖片

3: 獲取指定日期所在年份最後一天。返回格式yyyyMMdd

public String getYearEnd(String repeatDate ,String dftStr){

if(StringUtils.isEmpty(dftStr)){

dftStr="yyyyMMdd";

}

SimpleDateFormat dft = new SimpleDateFormat(dftStr);

Calendar localTime = Calendar.getInstance();//獲取當前

try {

if(repeatDate!=null && !"".equals(repeatDate)){

localTime.setTime(dft.parse(repeatDate));

repeatDate=localTime.get(Calendar.YEAR)+"1231";

}

} catch (ParseException e) {

e.printStackTrace();

}

return repeatDate;

}

這裏凱哥偷懶了。獲取月份後直接加上1231.其實可以直接使用類獲取的。

4:指定日期開始指定時間結束。返回格式yyyyMMdd

技術分享圖片

4:指定日期開始指定時間結束。返回格式yyyyMMdd

public String getXLeter(String dateStr ,String dftStr,String type,int x){

if(StringUtils.isEmpty(dftStr)){

dftStr="yyyyMMdd";

}

SimpleDateFormat dft = new SimpleDateFormat(dftStr);

Calendar calendar = Calendar.getInstance();

try {

if(dateStr!=null && !"".equals(dateStr)){

calendar.setTime(dft.parse(dateStr));

}

} catch (ParseException e) {

e.printStackTrace();

}

if("01".equals(type)){//一個月後

//calendar.add(Calendar.DATE, x);

calendar.add(Calendar.MONTH, x);

}else if("02".equals(type)){//三個月後

calendar.add(Calendar.MONTH, x);

}else if("03".equals(type)){//一年後

calendar.add(Calendar.YEAR, x);

}

return dft.format(calendar.getTime());

}

5:獲取到月初、年初。返回格式yyyyMMdd

技術分享圖片

5:獲取到月初、年初。返回格式yyyyMMdd

public static String getMinMonthDate(String dateStr,String dftStr,int monthnum,String type) {

if(StringUtils.isEmpty(dftStr)){

dftStr="yyyyMMdd";

}

SimpleDateFormat dft = new SimpleDateFormat(dftStr);

Calendar calendar = Calendar.getInstance();

try {

if(dateStr!=null && !"".equals(dateStr)){

calendar.setTime(dft.parse(dateStr));

}

} catch (ParseException e) {

e.printStackTrace();

}

calendar.add(Calendar.MONTH, monthnum);

if("m".equals(type)){//月份

calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH));

}else if("y".equals(type)){//

calendar.set(Calendar.DAY_OF_YEAR, calendar.getActualMinimum(Calendar.DAY_OF_YEAR));

}

return dft.format(calendar.getTime());

}


java使用Calendar類獲取常用簡單工具類