JAVA Calendar设置周一为第一天 4000
2017-12-25 17:26
330 查看
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 日期获取工具类,昨日开始时间,昨日结束时间,当前周周一日期,当前时间上月第一天,获取当前年第一天
- SQL Server设置周一为每周第一天
- java Calendar Date 获取传入日期所在月或年的第一天和最后一天
- 黑马韩前成java基础第一天之环境变量设置
- java Calendar DateFormat 时间 日期 月份 格式化 第一天 最后一天
- Java Calendar 获取本周周一和周日代码
- java Calendar 中设置时间为0点 0 分 0 秒
- Java获得某月第一天和最后一天(Calendar实现)
- java中Calendar设置时间问题
- java中如何设置准确的时间,不要用Date,而要用Calendar
- Java Calendar 获取本周周一和周日代码
- Java 使用Calendar 工具类时 设置时区
- Java 使用Calendar 工具类时 设置时区
- JAVA Calendar设置时间,月份总是加1
- JAVA Calendar设置时间,月份总是加1
- Calendar 获取本周周一、周五时间,以及获取当月第一天
- Java设置每周从周一开始
- Android 5.0系统编译 JAVA设置
- JAVA Calendar详解
- JAVA中用CALENDAR类计算周和周的起始日期(转)