获取上周一上周日,和大上周一和大上周日的时间
生活随笔
收集整理的這篇文章主要介紹了
获取上周一上周日,和大上周一和大上周日的时间
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ? 此方法是通過傳入的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("2019-01-01"));getWeekByDate(strToDate("2019-01-01"), -1);getWeekByDate(strToDate("2019-01-01"), 0);getWeekByDate(strToDate("2019-01-01"), 1);} }?
總結
以上是生活随笔為你收集整理的获取上周一上周日,和大上周一和大上周日的时间的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android studio制作.9图片
- 下一篇: 小程序+tgit