package com.thinkgem.jeesite.modules.sys.utils;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import com.thinkgem.jeesite.modules.sys.entity.DateVersion;
import com.thinkgem.jeesite.modules.sys.entity.Dict;
/**
* 获取当前版本
* @author jxxt
*
*/
public class DateVersionUtils {
// 获取当前版本
public static DateVersion get(){
return get(new Date());
}
// 获取某个日期的当前版本
public static DateVersion get(Date date){
DateVersion dv = new DateVersion();
Calendar calendar = GregorianCalendar.getInstance();
calendar.setFirstDayOfWeek(Calendar.MONDAY);
calendar.setMinimalDaysInFirstWeek(7);
// 获取当前日期
calendar.setTime (date);
// 获取该周当天
dv.setToday(calendar.getTime());
// 获取当前年
dv.setYear(calendar.get(Calendar.YEAR));
// 获取当前月
dv.setMonth(calendar.get(Calendar.MONTH) + 1);
// 获取当前日
dv.setDay(calendar.get(Calendar.DATE));
// 获取该周周一
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
Date monday = calendar.getTime();
dv.setMonday(monday);
// 重新设置该周一为基准日
calendar.setTime (monday);
// 设置周
dv.setWeek(calendar.get(Calendar.WEEK_OF_YEAR));
// 获取当前年
dv.setYearOfMonday(calendar.get(Calendar.YEAR));
// 获取该周周末
calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) + 6);
dv.setSunday(calendar.getTime());
return dv;
}
// 获取上一周
// 传入参数必须是周一
public static Date geLastWeekMonday(Date monday) {
Calendar cal = Calendar.getInstance();
cal.setTime(monday);
cal.add(Calendar.DATE, -7);
return cal.getTime();
}
// 获取过去十三个周
private static List<DateVersion> geLas13tWeek() {
List<DateVersion> dates = new ArrayList<DateVersion>();
dates.add(get());
for(int i = 1; i < 13; i++){
dates.add(get(geLastWeekMonday(dates.get(i - 1).getMonday())));
}
return dates;
}
public static List<Dict> geLas13tWeekList(){
List<Dict> list = new ArrayList<Dict>();
List<DateVersion> dates = geLas13tWeek();
for(int i = 0; i < 13; i++){
list.add(new Dict(dates.get(i).getCurrentVersion(),dates.get(i).getCurrentVersion()));
}
return list;
}
public static void main(String[] args) throws ParseException {
// 测试赛跨年
DateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
int year = 2018;
for(int i = 0; i < 5; i++){
Date myDate1 = dateFormat1.parse(year + "-01-07");
System.out.println(DateVersionUtils.get(myDate1).getCurrentVersion());
year++;
}
System.out.println("========================================================");
// 测试十三周
List<Dict> list = geLas13tWeekList();
for(int i = 0; i < 13; i++){
System.out.println(list.get(i).getLabel());
}
}
}
简单点 https://learngitbranching.js.org/?NODEMO
最新推荐文章于 2022-04-28 20:03:47 发布