简单点 https://learngitbranching.js.org/?NODEMO

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());
		}
		

	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值