DateUtils.java
package com. authine. cloudpivot. ext. utils;
import java. text. SimpleDateFormat;
import java. util. Calendar;
import java. util. Date;
public class DateUtils {
public static Date getFirstDayDateOfMonth ( final Date date) {
final Calendar cal = Calendar. getInstance ( ) ;
cal. setTime ( date) ;
final int last = cal. getActualMinimum ( Calendar. DAY_OF_MONTH) ;
cal. set ( Calendar. DAY_OF_MONTH, last) ;
return cal. getTime ( ) ;
}
public static Date getLastDayOfMonth ( final Date date) {
final Calendar cal = Calendar. getInstance ( ) ;
cal. setTime ( date) ;
final int last = cal. getActualMaximum ( Calendar. DAY_OF_MONTH) ;
cal. set ( Calendar. DAY_OF_MONTH, last) ;
return cal. getTime ( ) ;
}
public static Date getNextMonth ( final Date date) {
final Calendar cal = Calendar. getInstance ( ) ;
cal. setTime ( date) ;
cal. add ( Calendar. MONTH, 1 ) ;
return cal. getTime ( ) ;
}
public static Date getLastMonth ( final Date date) {
final Calendar cal = Calendar. getInstance ( ) ;
cal. setTime ( date) ;
cal. add ( Calendar. MONTH, - 1 ) ;
return cal. getTime ( ) ;
}
public static Date getDayBegin ( final Date date) {
final Calendar cal = Calendar. getInstance ( ) ;
cal. setTime ( date) ;
cal. add ( Calendar. DAY_OF_MONTH, 0 ) ;
cal. set ( Calendar. HOUR_OF_DAY, 0 ) ;
cal. set ( Calendar. MINUTE, 0 ) ;
cal. set ( Calendar. SECOND, 0 ) ;
cal. set ( Calendar. MILLISECOND, 0 ) ;
return cal. getTime ( ) ;
}
public static Date getDayEnd ( final Date date) {
final Calendar cal = Calendar. getInstance ( ) ;
cal. setTime ( date) ;
cal. add ( Calendar. DAY_OF_MONTH, 0 ) ;
cal. set ( Calendar. HOUR_OF_DAY, 23 ) ;
cal. set ( Calendar. MINUTE, 59 ) ;
cal. set ( Calendar. SECOND, 59 ) ;
cal. set ( Calendar. MILLISECOND, 999 ) ;
return cal. getTime ( ) ;
}
public static Date getNextDay ( final Date date) {
final Calendar cal = Calendar. getInstance ( ) ;
cal. setTime ( date) ;
cal. add ( Calendar. DATE, 1 ) ;
return cal. getTime ( ) ;
}
public static Boolean isWeekend ( Date date) {
final Calendar cal = Calendar. getInstance ( ) ;
cal. setTime ( date) ;
if ( cal. get ( Calendar. DAY_OF_WEEK) == Calendar. SATURDAY || cal. get ( Calendar. DAY_OF_WEEK) == Calendar. SUNDAY) {
return true ;
}
return false ;
}
public static String[ ] getCurrQuarter ( int num) {
String[ ] s = new String [ 2 ] ;
String str = "" ;
Calendar quarterCalendar = null;
switch ( num) {
case 1 :
quarterCalendar = Calendar. getInstance ( ) ;
quarterCalendar. set ( Calendar. MONTH, 3 ) ;
quarterCalendar. set ( Calendar. DATE, 1 ) ;
quarterCalendar. add ( Calendar. DATE, - 1 ) ;
str = DateUtils. formatDate ( quarterCalendar. getTime ( ) , "yyyy-MM-dd" ) ;
s[ 0 ] = str. substring ( 0 , str. length ( ) - 5 ) + "01-01" ;
s[ 1 ] = str;
break ;
case 2 :
quarterCalendar = Calendar. getInstance ( ) ;
quarterCalendar. set ( Calendar. MONTH, 6 ) ;
quarterCalendar. set ( Calendar. DATE, 1 ) ;
quarterCalendar. add ( Calendar. DATE, - 1 ) ;
str = DateUtils. formatDate ( quarterCalendar. getTime ( ) , "yyyy-MM-dd" ) ;
s[ 0 ] = str. substring ( 0 , str. length ( ) - 5 ) + "04-01" ;
s[ 1 ] = str;
break ;
case 3 : / / 本年到现在经过了三个季度,在加上前二个季度
quarterCalendar = Calendar. getInstance ( ) ;
quarterCalendar. set ( Calendar. MONTH, 9 ) ;
quarterCalendar. set ( Calendar. DATE, 1 ) ;
quarterCalendar. add ( Calendar. DATE, - 1 ) ;
str = DateUtils. formatDate ( quarterCalendar. getTime ( ) , "yyyy-MM-dd" ) ;
s[ 0 ] = str. substring ( 0 , str. length ( ) - 5 ) + "07-01" ;
s[ 1 ] = str;
break ;
case 4 : / / 本年到现在经过了四个季度,在加上前一个季度
quarterCalendar = Calendar. getInstance ( ) ;
str = DateUtils. formatDate ( quarterCalendar. getTime ( ) , "yyyy-MM-dd" ) ;
s[ 0 ] = str. substring ( 0 , str. length ( ) - 5 ) + "10-01" ;
s[ 1 ] = str. substring ( 0 , str. length ( ) - 5 ) + "12-31" ;
break ;
}
return s;
}
public static String formatDate ( Date currentDate, String pattern) {
if ( currentDate == null || "" . equals ( pattern) || pattern == null) {
return null;
}
SimpleDateFormat sdf = new SimpleDateFormat ( pattern) ;
return sdf. format ( currentDate) ;
}
}