package com.pq.cheinfo.util;
import com.alibaba.fastjson.JSONObject;
import com.pq.framework.util.ImgCompress;
import com.pq.framework.util.StringUtil;
import org.apache.log4j.Logger;
import java.io.File;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
public class Utils {
public final static Logger log = Logger.getLogger(Utils.class);
private static final int FIRST_DAY_OF_WEEK = Calendar.THURSDAY;
public static String getDate(String filename) {
filename = StringUtil.nullToEmpty(filename, "_ -");
if(filename.indexOf('_') != -1 && filename.indexOf('-') != -1) {
return StringUtil.nullToEmpty(filename.substring(filename.indexOf('_') + 1, filename.indexOf('-')));
}
return "";
}
/**
* 得到當天開始時間
* @return
*/
public static String getBeginTime(){
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar c = new GregorianCalendar();
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
return sdf.format(c.getTime());
}
/**
* 得到當天的結束時間
* @return
*/
public static String getEndTime(){
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar c = new GregorianCalendar();
c.set(Calendar.HOUR_OF_DAY, 23);
c.set(Calendar.MINUTE, 59);
c.set(Calendar.SECOND, 59);
return sdf.format(c.getTime());
}
/**
* 計算兩個日期之間相差的天數
* @param smdate 較小的時間
* @param bdate 較大的時間
* @return 相差天數
* @throws ParseException
*/
public static Integer daysBetween(String smdate, String bdate)
{
try{
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));
}catch (Exception e){
return 0;
}
}
/**
*
* 1 第一季度 2 第二季度 3 第三季度 4 第四季度
*
* @param date
* @return
*/
public static int getSeason(Date date) {
int season = 0;
Calendar c = Calendar.getInstance();
c.setTime(date);
int month = c.get(Calendar.MONTH);
switch (month) {
case Calendar.JANUARY:
case Calendar.FEBRUARY:
case Calendar.MARCH:
season = 1;
break;
case Calendar.APRIL:
case Calendar.MAY:
case Calendar.JUNE:
season = 2;
break;
case Calendar.JULY:
case Calendar.AUGUST:
case Calendar.SEPTEMBER:
season = 3;
break;
case Calendar.OCTOBER:
case Calendar.NOVEMBER:
case Calendar.DECEMBER:
season = 4;
break;
default:
break;
}
return season;
}
/**
* 獲取當前時間的前一天
*/
public static Calendar getNextDay() {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH, -1);
return calendar;
}
/**
* 獲取當前時間的前一天 2019-03-01
*/
public static Calendar getNextDay(String date) throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
calendar.setTime(simpleDateFormat.parse(date));
calendar.add(Calendar.DAY_OF_MONTH, -1);
return calendar;
}
/**
* 對字符串md5加密
*
* @param str
* @return
*/
public static String getMD5(String str) {
try {
// 生成一個MD5加密計算摘要
MessageDigest md = MessageDigest.getInstance("MD5");
// 計算md5函數
md.update(str.getBytes());
// digest()最後確定返回md5 hash值,返回值爲8爲字符串。因爲md5 hash值是16位的hex值,實際上就是8位的字符
// BigInteger函數則將8位的字符串轉換成16位hex值,用字符串來表示;得到字符串形式的hash值
return new BigInteger(1, md.digest()).toString(16);
} catch (Exception e) {
log.error(e.getMessage());
return null;
}
}
/**
* 獲取某段時間內的所有日期
* 根據開始時間,結束時間返回List日期段
*/
public static List<Date> findDates(Date dateBegin, Date dateEnd)
{
List rangeDate = new ArrayList();
rangeDate.add(dateBegin);
Calendar calendarBegin = Calendar.getInstance();
calendarBegin.setTime(dateBegin);
Calendar calEnd = Calendar.getInstance();
calEnd.setTime(dateEnd);
while (dateEnd.after(calendarBegin.getTime()))
{
calendarBegin.add(Calendar.DAY_OF_MONTH, 1);
rangeDate.add(calendarBegin.getTime());
}
return rangeDate;
}
/**
* 獲取某段時間內的所有日期(開始結束都是字符串)格式: yyyy-MM-dd
* 根據開始時間,結束時間返回List日期段字符串類型
*/
public static List<String> getScopDate(String startDate, String endDate) {
List<String> scop = new ArrayList<String>();
try{
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date endDates = format.parse(endDate);
Calendar startBegin = Calendar.getInstance();
startBegin.setTime(format.parse(startDate));
Calendar endBegin = Calendar.getInstance();
endBegin.setTime(format.parse(endDate));
scop.add(startDate);
while (endDates.after(startBegin.getTime())) {
startBegin.add(Calendar.DAY_OF_MONTH, 1);
scop.add(format.format(startBegin.getTime()));
}
}catch (Exception e){
log.error("method[getScopDate] error: " + e.getMessage());
}
return scop;
}
/**
* 獲取某個時間日期月份的一號
* 返回字符串類型的值,格式yyyy-MM-dd
*/
public static String getMonth(String date) throws ParseException {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Calendar cale = Calendar.getInstance();
cale.setTime(format.parse(date));
cale.add(Calendar.MONTH, 0);
cale.set(Calendar.DAY_OF_MONTH, 1);
return format.format(cale.getTime());
}
/**
* 獲取明天的日期
* 返回字符串類型值 格式yyyy-MM-dd
*/
public static String getNextDate(String date){
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
try {
calendar.setTime(dateFormat.parse(date));
calendar.add(Calendar.DAY_OF_YEAR, 1);
return dateFormat.format(calendar.getTime());
} catch (ParseException e) {
log.error("獲取明天日期時日期類型轉換異常" + e.getMessage());
}
return null;
}
/**
* 獲取指定的日期
* 返回字符串類型值 格式yyyy-MM-dd
*/
public static String getNextDate(String date, int days){
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
try {
calendar.setTime(dateFormat.parse(date));
calendar.add(Calendar.DAY_OF_YEAR, days);
return dateFormat.format(calendar.getTime());
} catch (ParseException e) {
log.error("獲取明天日期時日期類型轉換異常" + e.getMessage());
}
return null;
}
/**
* 獲取昨天的日期
* 返回字符串類型值 格式yyyy-MM-dd
*/
public static String getYesterdayDate(){
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_YEAR, -1);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
return dateFormat.format(calendar.getTime());
}
/**
* 獲取今天的日期
* 返回字符串類型值 格式yyyy-MM-dd
*/
public static String getTodayDate(){
Calendar calendar = Calendar.getInstance();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
return dateFormat.format(calendar.getTime());
}
/**
* 獲取週一
* 返回字符串類型值 格式yyyy-MM-dd
*/
public static String getWeekDate(String date) throws ParseException {
//獲取周月
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//設置日期格式
Calendar cld = Calendar.getInstance();
cld.setTime(df.parse(date));
//以週一爲首日
cld.setFirstDayOfWeek(Calendar.MONDAY);
//時間按周來設置,設置爲週一
cld.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
return df.format(cld.getTime());
}
/**
* 獲取週一
* 返回字符串類型值 格式yyyy-MM-dd
*/
public static String getMondayDate(String date) {
return getMondayDate(date, 0);
}
/**
* 獲取週一
* 返回字符串類型值 格式yyyy-MM-dd
*/
public static String getMondayDate(String date, int weekOffset) {
try{
//獲取周月
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//設置日期格式
Calendar cld = Calendar.getInstance();
cld.setTime(df.parse(date));
cld.add(Calendar.WEEK_OF_MONTH,weekOffset);
//以週一爲首日
cld.setFirstDayOfWeek(Calendar.MONDAY);
//時間按周來設置,設置爲週一
cld.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
return df.format(cld.getTime());
}catch (Exception e){
log.error("method[getMondayDate] error: " + e.getMessage());
return "";
}
}
/**
* 獲取週日
* 返回字符串類型值 格式yyyy-MM-dd
*/
public static String getSundayDate(String date) {
return getSundayDate(date, 0);
}
/**
* 獲取週日
* 返回字符串類型值 格式yyyy-MM-dd
*/
public static String getSundayDate(String date, int weekOffset) {
try{
//獲取周月
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//設置日期格式
Calendar cld = Calendar.getInstance();
cld.setTime(df.parse(date));
cld.add(Calendar.WEEK_OF_MONTH,weekOffset);
//以週一爲首日
cld.setFirstDayOfWeek(Calendar.MONDAY);
//時間按周來設置,設置爲週一
cld.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
return df.format(cld.getTime());
}catch (Exception e){
log.error("method[getSundayDate] error: " + e.getMessage());
return "";
}
}
public static String getLastWeekDate(String date, int weekOffset,int firstDayOfWeek, int searchDay) {
try{
//獲取周月
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//設置日期格式
Calendar cld = Calendar.getInstance();
cld.setTime(df.parse(date));
cld.add(Calendar.WEEK_OF_MONTH,weekOffset);
//以週一爲首日
cld.setFirstDayOfWeek(firstDayOfWeek);
//時間按周來設置,設置爲週一
cld.set(Calendar.DAY_OF_WEEK, searchDay);
return df.format(cld.getTime());
}catch (Exception e){
log.error("method[getSundayDate] error: " + e.getMessage());
return "";
}
}
/**
* 獲取每個月的一號
* 返回字符串類型值 格式yyyy-MM-dd
*/
public static String getMonthDate(String date) {
try{
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Calendar cale = Calendar.getInstance();
cale.setTime(format.parse(date));
cale.add(Calendar.MONTH, 0);
cale.set(Calendar.DAY_OF_MONTH, 1);
return format.format(cale.getTime());
}catch (Exception e){
return null;
}
}
/**
* 獲取每個月的最後一天
* @param date
* @return
* @throws ParseException
*/
public static String getDateLastDay(String date) throws ParseException {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Calendar cale = Calendar.getInstance();
cale.setTime(format.parse(date));
cale.add(Calendar.MONTH, 1);
cale.set(Calendar.DAY_OF_MONTH, 0);
return format.format(cale.getTime());
}
/***
* 獲得取每個月的最後一天日期
* 返回字符串類型值 格式yyyy-MM-dd
* @param date
* @return
*/
public static String lastDayOfMonth(String date) {
try{
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Calendar cale = Calendar.getInstance();
cale.setTime(format.parse(date));
cale.set(Calendar.DAY_OF_MONTH, 1);
cale.roll(Calendar.DAY_OF_MONTH, -1);
return format.format(cale.getTime());
}catch (Exception e){
return date;
}
}
/***
* 獲得兩個月份日期之間的所有月份日期
* 包含前後兩個月份
* @param start_month
* @param end_month
* @return
*/
public static List<String> monthBetween(String start_month, String end_month){
List<String> result = new ArrayList<>();
if(start_month.compareTo(end_month) > 0){
return result;
}else{
int s_year = Integer.parseInt(start_month.substring(0,4));
int s_month = Integer.parseInt(start_month.substring(5,7));
int e_year = Integer.parseInt(end_month.substring(0,4));
int e_month = Integer.parseInt(end_month.substring(5,7));
for(int i=s_year; i<=e_year; i++){
int t_month = 1;
int t_e_month = 12;
if(i==s_year){
t_month=s_month;
}
if(i==e_year){
t_e_month=e_month;
}
for(int j = t_month; j<=t_e_month; j++){
String t_str = i+"-"+String.format("%02d", j);
result.add(t_str);
}
}
}
return result;
}
public static List<String> weekBetween(String start_week, String end_week){
List<String> result = new ArrayList<>();
if(start_week.compareTo(end_week) > 0){
return result;
}else{
int s_year = Integer.parseInt(start_week.substring(0,4));
int s_week = Integer.parseInt(start_week.substring(5,7));
int e_year = Integer.parseInt(end_week.substring(0,4));
int e_week = Integer.parseInt(end_week.substring(5,7));
for(int i=s_year; i<=e_year; i++){
int t_month = 1;
int t_e_month = getWeekNumOfYear(i+"");
if(i==s_year){
t_month=s_week;
}
if(i==e_year){
t_e_month=e_week;
}
for(int j = t_month; j<=t_e_month; j++){
String t_str = i+"-"+String.format("%02d", j);
result.add(t_str);
}
}
}
return result;
}
/***
* 獲得下一個月份字符串
* @param month_str yyyy-mm格式
* @return
*/
public static String getNextMonth(String month_str){
int year = Integer.parseInt(month_str.substring(0,4));
int month = Integer.parseInt(month_str.substring(5,7));
if(month == 12){
return (year+1)+"-01";
}else{
return year+"-"+String.format("%02d", month+1);
}
}
/***
* 獲得下一個月份字符串
* @param month_str yyyy-mm格式
* @return
*/
public static String getPreMonth(String month_str){
int year = Integer.parseInt(month_str.substring(0,4));
int month = Integer.parseInt(month_str.substring(5,7));
if(month == 1){
return (year-1)+"-12";
}else{
return year+"-"+String.format("%02d", month-1);
}
}
/***
* 獲得某日期是當年度的第幾周
* @param date_str
* @return
*/
public static String getYearOfWeekStr(String date_str){
return getYearOfWeekStr(date_str, 0);
}
public static String getYearOfWeekStr(String date_str, int weekOffset){
return getYearOfWeekStr(date_str, weekOffset, Calendar.MONDAY);
}
public static String getYearOfWeekStr(String date_str, int weekOffset, int FirstDayofWeek){
int week = 0 ;
int year = 0;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat formaty = new SimpleDateFormat("YYYY");
try {
Date date = null;
date = format.parse(date_str);
Calendar calendar = Calendar.getInstance();
calendar.setFirstDayOfWeek(FirstDayofWeek);
calendar.setTime(date);
calendar.add(Calendar.WEEK_OF_MONTH,weekOffset);
week = calendar.get(Calendar.WEEK_OF_YEAR);
year = Integer.parseInt(formaty.format(calendar.getTime()));
}catch (Exception e){
log.error("method[getYearOfWeekStr] error: " + e.getMessage());
}
String week_str = year+"-"+String.format("%02d", week);
return week_str;
}
public static String getWeekOfYear(String dateStr) {
int week = 0;
int year = 0;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
try {
// 獲取指定周的第一天
Calendar calendar = Calendar.getInstance();
calendar.setTime(format.parse(dateStr));
//以週一爲首日
calendar.setFirstDayOfWeek(Calendar.MONDAY);
//週四的那一天爲所在周的第一天
calendar.set(Calendar.DAY_OF_WEEK, FIRST_DAY_OF_WEEK);
week = calendar.get(Calendar.WEEK_OF_YEAR);
year = calendar.get(Calendar.YEAR);
}catch (Exception e){
log.error("method[getWeekOfYear] error: " + e.getMessage() + ", params: dateStr: " + dateStr);
}
String week_str = year+"-"+String.format("%02d", week);
return week_str;
}
/***
* 獲得一年一共有多少周
* 判斷當年最後一天的週數
* @param year
* @return
*/
public static int getWeekNumOfYear(String year){
String week_str = getYearOfWeekStr(year+"-12-31");
int week_num =Integer.parseInt(week_str.substring(5,7));
if(week_num == 1){
week_str = getYearOfWeekStr(year+"-12-24");
week_num =Integer.parseInt(week_str.substring(5,7));
}
return week_num;
}
public static String formatMonthStr(String date_str){
String[] arrs = date_str.split("-");
int year = Integer.parseInt(arrs[0]);
int month = Integer.parseInt(arrs[1]);
String month_str = year+"-"+String.format("%02d", month);
return month_str;
}
public static String cancatFileName(String filePath){
File tempFile =new File( filePath.trim());
return tempFile.getName();
}
public static String getPreDate(String date_str){
try{
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
calendar.setTime(simpleDateFormat.parse(date_str));
calendar.add(Calendar.DAY_OF_MONTH, -1);
return simpleDateFormat.format(calendar.getTime());
}catch (Exception e){
log.error("method[getPreDate] error: " + e.getMessage());
return date_str;
}
}
public static HashMap<String, List<String>> splitMonthRange(String start_date, String end_date){
HashMap<String, List<String>> result = new HashMap<>();
result.put("before", new ArrayList<>());
result.put("month", new ArrayList<>());
result.put("after", new ArrayList<>());
int day_lengh = daysBetween(start_date, end_date);
if(day_lengh<27){
// 日期超過28天才找整個月份的日期段
// 肯定不夠一個月,直接返回
result.get("before").add(start_date);
result.get("before").add(end_date);
}else{
// 獲得開始日期的月份,第一天,最後一天,月份
String s_month = start_date.substring(0, 7);
String s_first_day = start_date.substring(0, 7)+"-01";
String s_end_day = lastDayOfMonth(start_date);
if(!(end_date.compareTo(s_end_day) >=0
&& start_date.compareTo(s_first_day)<=0)){
s_month = getNextMonth(s_month);
}
// 獲得結束日期的月份,第一天,最後一天,月份
String e_month = end_date.substring(0, 7);
String e_first_day = end_date.substring(0, 7)+"-01";
String e_end_day = lastDayOfMonth(end_date);
if(!(end_date.compareTo(e_end_day) >=0
&& start_date.compareTo(e_first_day)<=0)){
e_month = getPreMonth(e_month);
e_end_day = lastDayOfMonth(e_month+"-01");
}
// 獲得中間的月份數
List<String> month_list = monthBetween(s_month, e_month);
if(month_list.size() >0 ){
result.put("month", month_list);
if(start_date.compareTo(s_month+"-01") < 0){
result.get("before").add(start_date);
result.get("before").add(getPreDate(s_month+"-01"));
}
if(end_date.compareTo(e_end_day) > 0){
result.get("after").add(getNextDate(e_end_day));
result.get("after").add(end_date);
}
}else{
// 沒有整月直接返回
result.get("before").add(start_date);
result.get("before").add(end_date);
}
}
return result;
}
public static HashMap<String, List<String>> splitWeekRange(String start_date, String end_date){
HashMap<String, List<String>> result = new HashMap<>();
result.put("before", new ArrayList<>());
result.put("week", new ArrayList<>());
result.put("after", new ArrayList<>());
int day_lengh = daysBetween(start_date, end_date);
if(day_lengh<6){
// 日期超過7天才找整個周的日期段
result.get("before").add(start_date);
result.get("before").add(end_date);
}else{
// 獲得開始日期的週數,週一,週日,週數
String s_week = getYearOfWeekStr(start_date);
String s_monday = getMondayDate(start_date);
String s_sunday = getSundayDate(start_date);
if(!(end_date.compareTo(s_sunday) >=0
&& start_date.compareTo(s_monday)<=0)){
s_week = getYearOfWeekStr(start_date, 1);
s_monday = getMondayDate(start_date, 1);
s_sunday = getSundayDate(start_date, 1);
}
// 獲得結束日期的週數,第一天,最後一天,週數
String e_week = getYearOfWeekStr(end_date);
String e_monday = getMondayDate(end_date);
String e_sunday = getSundayDate(end_date);
if(!(end_date.compareTo(e_sunday) >=0
&& start_date.compareTo(e_monday)<=0)){
e_week = getYearOfWeekStr(end_date, -1);
e_monday = getMondayDate(end_date, -1);
e_sunday = getSundayDate(end_date, -1);
}
// 計算週數
List<String> week_list = weekBetween(s_week, e_week);
if(week_list.size() >0 ){
result.put("week", week_list);
if(start_date.compareTo(s_monday) < 0){
result.get("before").add(start_date);
result.get("before").add(getPreDate(s_monday));
}
if(end_date.compareTo(e_sunday) > 0){
result.get("after").add(getNextDate(e_sunday));
result.get("after").add(end_date);
}
}else{
// 沒有整月直接返回
result.get("before").add(start_date);
result.get("before").add(end_date);
}
}
return result;
}
/***
* 將一個時間段,轉爲爲日,周,月列表
* @param start_date
* @param end_date
* @return
*/
public static HashMap<String, List<String>> splitDateRange(String start_date, String end_date){
HashMap<String, List<String>> result = new HashMap<>();
result.put("day", new ArrayList<>());
result.put("week", new ArrayList<>());
result.put("month", new ArrayList<>());
// 1. 找整月的 日期段
HashMap<String, List<String>> month_hits = splitMonthRange(start_date, end_date);
result.get("month").addAll(month_hits.get("month"));
// 2. 找整週的 日期段
if(month_hits.get("before").size()>0){
HashMap<String, List<String>> week_hits_1 = splitWeekRange(month_hits.get("before").get(0),
month_hits.get("before").get(1));
result.get("week").addAll(week_hits_1.get("week"));
// 3. 剩下的是單天的日期
if(week_hits_1.get("before").size()>0){
result.get("day").addAll(getScopDate(week_hits_1.get("before").get(0),
week_hits_1.get("before").get(1)));
}
if(week_hits_1.get("after").size()>0){
result.get("day").addAll(getScopDate(week_hits_1.get("after").get(0),
week_hits_1.get("after").get(1)));
}
}
if(month_hits.get("after").size()>0){
HashMap<String, List<String>> week_hits_2 = splitWeekRange(month_hits.get("after").get(0),
month_hits.get("after").get(1));
result.get("week").addAll(week_hits_2.get("week"));
if(week_hits_2.get("before").size()>0){
result.get("day").addAll(getScopDate(week_hits_2.get("before").get(0),
week_hits_2.get("before").get(1)));
}
if(week_hits_2.get("after").size()>0){
result.get("day").addAll(getScopDate(week_hits_2.get("after").get(0),
week_hits_2.get("after").get(1)));
}
}
// 4. 拼接結果
return result;
}
public static HashMap<String, List<String>> splitDateRangeOnlyMonth(String start_date, String end_date){
HashMap<String, List<String>> result = new HashMap<>();
result.put("day", new ArrayList<>());
result.put("month", new ArrayList<>());
// 1. 找整月的 日期段
HashMap<String, List<String>> month_hits = splitMonthRange(start_date, end_date);
result.get("month").addAll(month_hits.get("month"));
// 2. 找整週的 日期段
if(month_hits.get("before").size()>0){
result.get("day").addAll(getScopDate(month_hits.get("before").get(0),
month_hits.get("before").get(1)));
}
if(month_hits.get("after").size()>0){
result.get("day").addAll(getScopDate(month_hits.get("after").get(0),
month_hits.get("after").get(1)));
}
// 4. 拼接結果
return result;
}
// public static void main(String[] argvs){
// System.out.println(getYearOfWeekStr("2020-05-14",-1,Calendar.FRIDAY));
// System.out.println(getYearOfWeekStr("2020-05-15",-1,Calendar.FRIDAY));
// System.out.println(getYearOfWeekStr("2020-01-01",-1,Calendar.FRIDAY));
// System.out.println(getYearOfWeekStr("2019-12-31",-1,Calendar.FRIDAY));
// }
}
工具類(有關於時間的一些計算)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.