1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 获取上周一上周日 和大上周一和大上周日的时间

获取上周一上周日 和大上周一和大上周日的时间

时间:2019-09-07 02:00:27

相关推荐

获取上周一上周日 和大上周一和大上周日的时间

此方法是通过传入的int来控制的 获取的数据为一个自然周(-1 当前 0 上周 1 大上周 以此类推进行的参数的传递)。直接用getWeekByDate方法即可

package com.hisense.smartroad.saf.week.service;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.HashMap;import java.util.Map;public class Test {static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 设置时间格式/*** 获取上周一到上周日 -1 当前 0 上周 1 大上周*/public static Map<String, Date> getWeekByDate(Date date, int x) {Calendar cal = Calendar.getInstance();if (date == null) {date = new Date();}cal.setTime(date);Map<String, Date> map = new HashMap<String, Date>();int n = cal.get(Calendar.DAY_OF_WEEK) - 1;if (n == 0) {n = 7;}cal.add(Calendar.DATE, -(7 + (n - 1) + 7 * x));Date monday = cal.getTime();map.put("monday", monday);cal.add(Calendar.DATE, 6);Date sunday = cal.getTime();map.put("sunday", sunday);/** String imptimeEnds = sdf.format(sunday);* System.out.println(imptimeEnds);*/return map;}public void getWeekByDate(Date time) {Calendar cal = Calendar.getInstance();cal.setTime(time);// 判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了int dayWeek = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天if (1 == dayWeek) {cal.add(Calendar.DAY_OF_MONTH, -1);}System.out.println("要计算日期为:" + sdf.format(cal.getTime())); // 输出要计算日期cal.setFirstDayOfWeek(Calendar.MONDAY);// 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一int day = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day);// 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值String imptimeBegin = sdf.format(cal.getTime());System.out.println("所在周星期一的日期:" + imptimeBegin);cal.add(Calendar.DATE, 6);String imptimeEnd = sdf.format(cal.getTime());System.out.println("所在周星期日的日期:" + imptimeEnd);}public static Date strToDate(String source) {Date date = new Date();try {DateFormat df = new SimpleDateFormat("yyyy-MM-dd");date = df.parse(source);} catch (Exception e) {e.printStackTrace();}return date;}public static void main(String[] args) {getWeekByDate(strToDate("-01-01"));getWeekByDate(strToDate("-01-01"), -1);getWeekByDate(strToDate("-01-01"), 0);getWeekByDate(strToDate("-01-01"), 1);}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。