簡體   English   中英

Java的Calendar類中Calendar.WEEK_OF_MONTH和Calendar.DAY_OF_WEEK_IN_MONTH有什么區別?

[英]What is the difference between Calendar.WEEK_OF_MONTH and Calendar.DAY_OF_WEEK_IN_MONTH in Java's Calendar class?

Java的Calendar類提供兩個字段:WEEK_OF_MONTH和DAY_OF_WEEK_IN_MONTH。 有人可以向我解釋一下這個區別嗎? 在使用以下代碼進行測試時,它們似乎都返回相同的值:

Calendar date = Calendar.getInstance();
date.set(2011,5,29);
int weekNo1 = date.get(Calendar.WEEK_OF_MONTH);
int weekNo2 = date.get(Calendar.DAY_OF_WEEK_IN_MONTH);

區別在於DAY_OF_WEEK_IN_MONTH提供了工作日在該月份發生的次數,WEEK_OF_MONTH只返回當月內的周數。 可以這樣想,如果月份從星期三開始,則第一個星期一將在該月的第二周開始。 該周一的DAY_OF_WEEK_IN_MONTH值為1,但WEEK_OF_MONTH為2。

  • Calendar.WEEK_OF_MONTH只返回“當前月份的當前周數”
  • Calendar.DAY_OF_WEEK只返回“從上周日開始的當前周的當前日期”
  • Calendar.DAY_OF_WEEK_IN_MONTH返回“N,如果當天是月的第N天”,則“如果今天是第3個星期三,則為3”

所以我在2016年12月21日寫這篇文章:

在此輸入圖像描述

這就是我得到的:

Calendar today = Calendar.getInstance();
System.out.println(today.get(Calendar.DAY_OF_WEEK));          //outputs 4, as today is 4th day in this week which started on 18
System.out.println(today.get(Calendar.DAY_OF_WEEK_IN_MONTH)); //outputs 3, as today is "3rd Wednesday of this month". Earlier two wednesday were on 7th and 14th
System.out.println(today.get(Calendar.WEEK_OF_MONTH));        //outputs 4, as currently 4th week of a month is running

我發現所有其他文檔都令人困惑,所以對於像我這樣的微軟開發人員來說,這對你來說可能很清楚,就像我一樣:

http://msdn.microsoft.com/en-us/library/aa986432(v=vs.80).aspx

一個常量,表示該月中某一天發生了多少次的值。

每周的一周是從當天開始的當月內的一周,已經過了幾周。

星期幾是星期四,星期日,星期日等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM