java 中怎么根據當前時間得到上周一和上周五的日期


/**
     * 獲取上周五時間
     */
    public Date lastFirday() {

  //作用防止周日得到本周日期
        Calendar calendar = Calendar.getInstance();
        while (calendar.get(Calendar.DAY_OF_WEEK) != Calendar.MONDAY) {
            calendar.add(Calendar.DAY_OF_WEEK, -1);
        }
        int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1;
        int offset = 7 - dayOfWeek;
        calendar.add(Calendar.DATE, offset - 9);

        return DateTimeUtil.getFirstDayOfWeek(calendar.getTime(), 6);//這是從上周日開始數的到本周五為6

    }

 

/**
     * 獲取上周一時間
     */
    public Date lastMonday() {
        Calendar calendar = Calendar.getInstance();
        while (calendar.get(Calendar.DAY_OF_WEEK) != Calendar.MONDAY) {
            calendar.add(Calendar.DAY_OF_WEEK, -1);
        }
        int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1;
        int offset = 1 - dayOfWeek;
        calendar.add(Calendar.DATE, offset - 7);
        return DateTimeUtil.getFirstDayOfWeek(calendar.getTime(), 2);
    }

 

/**
  * 得到某一天的該星期的第一日 00:00:00
  *
  * @param date
  * @param firstDayOfWeek
  *            一個星期的第一天為星期幾
  *
  * @return
  */
 public static Date getFirstDayOfWeek(Date date, int firstDayOfWeek) {
  Calendar cal = Calendar.getInstance();
  if (date != null)
   cal.setTime(date);
  cal.setFirstDayOfWeek(firstDayOfWeek);//設置一星期的第一天是哪一天
  cal.set(Calendar.DAY_OF_WEEK, firstDayOfWeek);//指示一個星期中的某天
  cal.set(Calendar.HOUR_OF_DAY, 0);//指示一天中的小時。HOUR_OF_DAY 用於 24 小時制時鍾。例如,在 10:04:15.250 PM 這一時刻,HOUR_OF_DAY 為 22。
  cal.set(Calendar.MINUTE, 0);//指示一小時中的分鍾。例如,在 10:04:15.250 PM 這一時刻,MINUTE 為 4。
  cal.set(Calendar.SECOND, 0);
  cal.set(Calendar.MILLISECOND, 0);
  return cal.getTime();
 }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM