Java获取当前时间的上一个月和下一个月,第一天和最后一天,任意时间的第一天和最后一天,任意时间上一个月和下一个月详解编程语言

/** 
* 获取当前时间 
*  
* @param args 
*/ 
public static String getNowTime() { 
Calendar cal = Calendar.getInstance(); 
SimpleDateFormat dft = new SimpleDateFormat("yyyyMMdd"); 
String lastMonth = dft.format(cal.getTime()); 
return lastMonth; 
} 
/** 
* 判断当天是否为本月第一天 
*  
* @return 
*/ 
public static boolean isFirstDayOfMonth() { 
boolean flag = false; 
Calendar calendar = Calendar.getInstance(); 
int today = calendar.get(calendar.DAY_OF_MONTH); 
if (1 == today) { 
flag = true; 
} 
return flag; 
} 
/** 
* 获取当前月份最后一天 
*  
* @param date 
* @return 
* @throws ParseException 
*/ 
public static String getMaxMonthDate() { 
SimpleDateFormat dft = new SimpleDateFormat("yyyyMMdd"); 
Calendar calendar = Calendar.getInstance(); 
calendar.setTime(new Date()); 
// calendar.add(Calendar.MONTH, -1); 
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); 
return dft.format(calendar.getTime()); 
} 
/** 
*  
* 描述:获取下一个月的第一天. 
*  
* @return 
*/ 
public static String getPerFirstDayOfMonth() { 
SimpleDateFormat dft = new SimpleDateFormat("yyyyMMdd"); 
Calendar calendar = Calendar.getInstance(); 
calendar.add(Calendar.MONTH, 1); 
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); 
return dft.format(calendar.getTime()); 
} 
/** 
*  
* 描述:获取上个月的最后一天. 
*  
* @return 
*/ 
public static String getLastMaxMonthDate() { 
SimpleDateFormat dft = new SimpleDateFormat("yyyyMMdd"); 
Calendar calendar = Calendar.getInstance(); 
calendar.setTime(new Date()); 
calendar.add(Calendar.MONTH, -1); 
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); 
return dft.format(calendar.getTime()); 
} 
/** 
* 获取上一个月 
*  
* @return 
*/ 
public static String getLastMonth() { 
Calendar cal = Calendar.getInstance(); 
cal.add(cal.MONTH, -1); 
SimpleDateFormat dft = new SimpleDateFormat("yyyyMM"); 
String lastMonth = dft.format(cal.getTime()); 
return lastMonth; 
} 
/** 
*  
* 描述:获取下一个月. 
*  
* @return 
*/ 
public static String getPreMonth() { 
Calendar cal = Calendar.getInstance(); 
cal.add(cal.MONTH, 1); 
SimpleDateFormat dft = new SimpleDateFormat("yyyyMM"); 
String preMonth = dft.format(cal.getTime()); 
return preMonth; 
} 
// 是否是最后一天 
public static boolean isLastDayOfMonth() { 
boolean flag = false; 
if (StringUtils.isNotBlank(getNowTime()) && StringUtils.isNotBlank(getMaxMonthDate()) && StringUtils.equals(getNowTime(), getMaxMonthDate())) { // getMaxMonthDate().equals(getNowTime()) 
flag = true; 
} 
return flag; 
} 
/** 
* 获取任意时间的下一个月 
* 描述:<描述函数实现的功能>. 
* @param repeatDate 
* @return 
*/ 
public static String getPreMonth(String repeatDate) { 
String lastMonth = ""; 
Calendar cal = Calendar.getInstance(); 
SimpleDateFormat dft = new SimpleDateFormat("yyyyMM"); 
int year = Integer.parseInt(repeatDate.substring(0, 4)); 
String monthsString = repeatDate.substring(4, 6); 
int month; 
if ("0".equals(monthsString.substring(0, 1))) { 
month = Integer.parseInt(monthsString.substring(1, 2)); 
} else { 
month = Integer.parseInt(monthsString.substring(0, 2)); 
} 
cal.set(year,month,Calendar.DATE); 
lastMonth = dft.format(cal.getTime()); 
return lastMonth; 
} 
/** 
* 获取任意时间的上一个月 
* 描述:<描述函数实现的功能>. 
* @param repeatDate 
* @return 
*/ 
public static String getLastMonth(String repeatDate) { 
String lastMonth = ""; 
Calendar cal = Calendar.getInstance(); 
SimpleDateFormat dft = new SimpleDateFormat("yyyyMM"); 
int year = Integer.parseInt(repeatDate.substring(0, 4)); 
String monthsString = repeatDate.substring(4, 6); 
int month; 
if ("0".equals(monthsString.substring(0, 1))) { 
month = Integer.parseInt(monthsString.substring(1, 2)); 
} else { 
month = Integer.parseInt(monthsString.substring(0, 2)); 
} 
cal.set(year,month-2,Calendar.DATE); 
lastMonth = dft.format(cal.getTime()); 
return lastMonth; 
} 
// 
/** 
* 获取任意时间的月的最后一天 
* 描述:<描述函数实现的功能>. 
* @param repeatDate 
* @return 
*/ 
private static String getMaxMonthDate(String repeatDate) { 
SimpleDateFormat dft = new SimpleDateFormat("yyyyMMdd"); 
Calendar calendar = Calendar.getInstance(); 
try { 
if(StringUtils.isNotBlank(repeatDate) && !"null".equals(repeatDate)){ 
calendar.setTime(dft.parse(repeatDate)); 
} 
} catch (ParseException e) { 
e.printStackTrace(); 
} 
// calendar.add(Calendar.MONTH, -1); 
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); 
return dft.format(calendar.getTime()); 
} 
/** 
* 获取任意时间的月第一天 
* 描述:<描述函数实现的功能>. 
* @param repeatDate 
* @return 
*/ 
private static String getMinMonthDate(String repeatDate){ 
SimpleDateFormat dft = new SimpleDateFormat("yyyyMMdd"); 
Calendar calendar = Calendar.getInstance(); 
try { 
if(StringUtils.isNotBlank(repeatDate) && !"null".equals(repeatDate)){ 
calendar.setTime(dft.parse(repeatDate)); 
} 
} catch (ParseException e) { 
e.printStackTrace(); 
} 
// calendar.add(Calendar.MONTH, -1); 
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); 
return dft.format(calendar.getTime());         
} 
/** 
* 不论是当前时间,还是历史时间  皆是时间点的前天 
* repeatDate  任意时间 
*/ 
public static String getModify2DaysAgo(String repeatDate) { 
Calendar cal = Calendar.getInstance(); 
String daysAgo = ""; 
SimpleDateFormat dft = new SimpleDateFormat("yyyyMMdd"); 
if (repeatDate == null || "".equals(repeatDate)) { 
cal.set(Calendar.DATE, cal.get(Calendar.DATE) - 2); 
} else { 
int year = Integer.parseInt(repeatDate.substring(0, 4)); 
String monthsString = repeatDate.substring(4, 6); 
int month; 
if ("0".equals(monthsString.substring(0, 1))) { 
month = Integer.parseInt(monthsString.substring(1, 2)); 
} else { 
month = Integer.parseInt(monthsString.substring(0, 2)); 
} 
String dateString = repeatDate.substring(6, 8); 
int date; 
if ("0".equals(dateString.subSequence(0, 1))) { 
date = Integer.parseInt(dateString.substring(1, 2)); 
} else { 
date = Integer.parseInt(dateString.substring(0, 2)); 
} 
cal.set(year, month-1, date - 1); 
System.out.println(dft.format(cal.getTime())); 
} 
daysAgo = dft.format(cal.getTime()); 
return daysAgo; 
} 
/** 
* 不论是当前时间,还是历史时间  皆是时间点的T-N天 
* repeatDate 任意时间    param 数字 可以表示前几天 
*/ 
public static String getModifyNumDaysAgo(String repeatDate,int param) { 
Calendar cal = Calendar.getInstance(); 
String daysAgo = ""; 
SimpleDateFormat dft = new SimpleDateFormat("yyyyMMdd"); 
if (repeatDate == null || "".equals(repeatDate)) { 
cal.set(Calendar.DATE, cal.get(Calendar.DATE) - param); 
} else { 
int year = Integer.parseInt(repeatDate.substring(0, 4)); 
String monthsString = repeatDate.substring(4, 6); 
int month; 
if ("0".equals(monthsString.substring(0, 1))) { 
month = Integer.parseInt(monthsString.substring(1, 2)); 
} else { 
month = Integer.parseInt(monthsString.substring(0, 2)); 
} 
String dateString = repeatDate.substring(6, 8); 
int date; 
if ("0".equals(dateString.subSequence(0, 1))) { 
date = Integer.parseInt(dateString.substring(1, 2)); 
} else { 
date = Integer.parseInt(dateString.substring(0, 2)); 
} 
cal.set(year, month-1, date - param+1); 
System.out.println(dft.format(cal.getTime())); 
} 
daysAgo = dft.format(cal.getTime()); 
return daysAgo; 
} 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/16856.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论