package com.thinkgem.jeesite.modules.sys.utils;
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;
/**
* 获取当前版本
* @author jxxt
*
*/
public class DateVersionUtils {
private static Integer WEEKNUM = 13;
public static DateVersion get(){
DateVersion dv = new DateVersion();
SimpleDateFormat simdf = new SimpleDateFormat("MM-dd");
Calendar calendar = Calendar.getInstance();
Calendar c = new GregorianCalendar();
c.setFirstDayOfWeek(Calendar.MONDAY);
c.setMinimalDaysInFirstWeek(7);
Date today = new Date();
c.setTime (today);
// 获取当前年
dv.setYear(calendar.get(Calendar.YEAR));
// 获取当前月
dv.setMonth(calendar.get(Calendar.MONTH) + 1);
// 获取当前日
dv.setDay(calendar.get(Calendar.DATE));
// 获取该周当天
dv.setToday(simdf.format(calendar.getTime()));
// 获取该周周一
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
dv.setMonday(simdf.format(calendar.getTime()));
// 获取该周周末
calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) + 6);
dv.setSunday(simdf.format(calendar.getTime()));
dv.setWeek(c.get(Calendar.WEEK_OF_YEAR));
if(dv.getWeek() > 51){
dv.setYear(calendar.get(Calendar.YEAR)-1);
}
return dv;
}
public static DateVersion returnVersion(int num){
DateVersion dv = new DateVersion();
SimpleDateFormat simdf = new SimpleDateFormat("MM-dd");
//Calendar calendar = Calendar.getInstance();
Calendar c = new GregorianCalendar();
c.setFirstDayOfWeek(Calendar.MONDAY);
c.setMinimalDaysInFirstWeek(7);
@SuppressWarnings("deprecation")
Date today = new Date(""+num+"/12/31");
// 获取当前年
dv.setYear(num);
// 获取当前是第几周
//calendar.setFirstDayOfWeek(Calendar.MONDAY);
System.out.println(today);
c.setTime (today);
dv.setWeek(c.get(Calendar.WEEK_OF_YEAR));
return dv;
}
// 获取当前时间所在年的周数
public static int getWeekOfYear(Date date) {
Calendar c = new GregorianCalendar();
c.setFirstDayOfWeek(Calendar.MONDAY);
c.setMinimalDaysInFirstWeek(1);
c.setTime(date);
return c.get(Calendar.WEEK_OF_YEAR);
}
// 取前13周的计算方法
public static List<String> perv13Week(){
String currentVersion = DateVersionUtils.get().getCurrentVersion();
String[] split = currentVersion.split("-");
List list = new ArrayList();
Integer valueOf = Integer.valueOf(split[1]);
// 如果周大于13
if( valueOf >= WEEKNUM) {
list.add(split[0]+""+split[1]);
for(int i=1; i< WEEKNUM; i++){
if(valueOf > 10){
list.add(split[0]+""+(--valueOf));
} else {
list.add(split[0]+"0"+(--valueOf));
}
}
} else {
// 取得当前周和13的差
int s= WEEKNUM-valueOf;
int num = valueOf;
list.add(split[0]+"0"+split[1]);
for(int i=1; i< num; i++){
if(valueOf > 10){
list.add(split[0]+""+(--valueOf));
} else {
list.add(split[0]+"0"+(--valueOf));
}
}
Integer years = Integer.valueOf(split[0]);
--years;
DateVersion returnVersion = returnVersion(years);
String currentVersion2 = returnVersion.getCurrentVersion();
String[] split2 = currentVersion2.split("-");
Integer valueOf1 = Integer.valueOf(split2[1]);
list.add(split2[0]+""+(valueOf1));
for(int a=1; a<s; a++){
list.add(split2[0]+""+(--valueOf1));
}
}
return list;
}
public static int getDayOfWeek(String dateString){
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
try {
Date date = format.parse(dateString);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.setFirstDayOfWeek(Calendar.MONDAY);
int tmp = cal.get(Calendar.DAY_OF_WEEK) - 1;
if (0 == tmp) {
tmp = 7;
}
return tmp;
} catch (Exception e) {
e.printStackTrace();
return -1;
}
}
public static void main(String[] args) {
String currentVersion = DateVersionUtils.get().getCurrentVersion();
System.out.println("sdf:"+currentVersion);
// System.out.print(DateVersionUtils.get().getCurrentVersion());
List<String> perv13Week = DateVersionUtils.perv13Week();
System.out.println(perv13Week);
}
}
JAVA Calendar设置周一为第一天
最新推荐文章于 2024-08-12 02:07:31 发布