package com
.sptit
.isv
.modules
.reports
.utils
;
import java
.sql
.Timestamp
;
import java
.util
.Calendar
;
public class DateRangeUtil {
private static Calendar
getCalendarForWeek(int year
){
Calendar cal
= Calendar
.getInstance();
cal
.set(Calendar
.DAY_OF_WEEK
, Calendar
.MONDAY
);
cal
.set(Calendar
.YEAR
, year
);
return cal
;
}
public static Timestamp
getStartDateOfWeek(int year
,int weekIndex
){
Calendar cal
= getCalendarForWeek(year
);
cal
.set(Calendar
.WEEK_OF_YEAR
, weekIndex
);
return Timestamp
.valueOf(getCalendarToTimestapStr(setStarthhmmss(cal
)));
}
public static Timestamp
getEndDateOfWeek(int year
,int weekIndex
){
Calendar cal
= getCalendarForWeek(year
);
cal
.set(Calendar
.WEEK_OF_YEAR
, weekIndex
);
cal
.add(Calendar
.DAY_OF_WEEK
, 6);
return Timestamp
.valueOf(getCalendarToTimestapStr(setEndhhmmss(cal
)));
}
private static Calendar
getCalendarForMonth(int year
, int monthIndex
){
Calendar cal
= Calendar
.getInstance();
cal
.set(Calendar
.YEAR
, year
);
cal
.set(Calendar
.MONTH
, monthIndex
- 1);
cal
.set(Calendar
.DATE
, 1);
return cal
;
}
public static Timestamp
getStartDateOfMonth(int year
, int monthIndex
){
Calendar cal
= getCalendarForMonth(year
, monthIndex
);
return Timestamp
.valueOf(getCalendarToTimestapStr(setStarthhmmss(cal
)));
}
public static Timestamp
getEndDateOfMonth(int year
, int monthIndex
){
Calendar cal
= getCalendarForMonth(year
, monthIndex
);
int total
= cal
.getActualMaximum(Calendar
.DAY_OF_MONTH
);
cal
.add(Calendar
.DAY_OF_MONTH
, total
- 1);
return Timestamp
.valueOf(getCalendarToTimestapStr(setEndhhmmss(cal
)));
}
private static Calendar
getCalendarForQuarter(int year
, int quarterIndex
){
int startMonth
= (quarterIndex
- 1)* 3 + 1;
Calendar cal
= Calendar
.getInstance();
cal
.set(Calendar
.DAY_OF_WEEK
, Calendar
.MONDAY
);
cal
.set(Calendar
.YEAR
, year
);
cal
.set(Calendar
.MONTH
, startMonth
- 1);
cal
.set(Calendar
.DATE
, 1);
return cal
;
}
public static Timestamp
getStartDateOfQuarter(int year
, int quarterIndex
){
Calendar cal
= getCalendarForQuarter(year
, quarterIndex
);
return Timestamp
.valueOf(getCalendarToTimestapStr(setStarthhmmss(cal
)));
}
public static Timestamp
getEndDateOfQuarter(int year
, int quarterIndex
){
Calendar cal
= getCalendarForQuarter(year
, quarterIndex
);
cal
.add(Calendar
.MONTH
, 2);
int total
= cal
.getActualMaximum(Calendar
.DAY_OF_MONTH
);
cal
.add(Calendar
.DAY_OF_MONTH
, total
- 1);
return Timestamp
.valueOf(getCalendarToTimestapStr(setEndhhmmss(cal
)));
}
private static Calendar
getCalendarForYear(int year
){
Calendar cal
= Calendar
.getInstance();
cal
.set(Calendar
.YEAR
, year
);
cal
.set(Calendar
.MONTH
, 0);
cal
.set(Calendar
.DATE
, 1);
return cal
;
}
public static Timestamp
getStartDateOfYear(int year
){
Calendar cal
= getCalendarForYear(year
);
return Timestamp
.valueOf(getCalendarToTimestapStr(setStarthhmmss(cal
)));
}
public static Timestamp
getEndDateOfYear(int year
){
Calendar cal
= getCalendarForYear(year
);
cal
.add(Calendar
.MONTH
, 11);
int total
= cal
.getActualMaximum(Calendar
.DAY_OF_MONTH
);
cal
.add(Calendar
.DAY_OF_MONTH
, total
- 1);
return Timestamp
.valueOf(getCalendarToTimestapStr(setEndhhmmss(cal
)));
}
private static Calendar
setStarthhmmss(Calendar cal
){
cal
.set(Calendar
.HOUR_OF_DAY
, 0);
cal
.set(Calendar
.MINUTE
, 0);
cal
.set(Calendar
.SECOND
, 0);
return cal
;
}
private static Calendar
setEndhhmmss(Calendar cal
){
cal
.set(Calendar
.HOUR_OF_DAY
, 23);
cal
.set(Calendar
.MINUTE
, 59);
cal
.set(Calendar
.SECOND
, 59);
return cal
;
}
private static String
getCalendarToTimestapStr(Calendar cal
){
String yyyymmdd
= cal
.get(Calendar
.YEAR
) + "-" + (cal
.get(Calendar
.MONTH
) + 1) + "-" + cal
.get(Calendar
.DAY_OF_MONTH
);
String hhmmss
= cal
.get(Calendar
.HOUR_OF_DAY
) + ":" + cal
.get(Calendar
.MINUTE
) + ":" + cal
.get(Calendar
.SECOND
);
return yyyymmdd
+ " "+ hhmmss
;
}
}
转载请注明原文地址: https://lol.8miu.com/read-19150.html