【发布时间】:2014-07-21 04:59:07
【问题描述】:
我想获取特定月份/年份的第一个星期一的日期。
我有什么:
我基本上有两个 int 变量,一个代表年份,一个代表月份。
我想要的:
我想知道本月的第一个星期一,最好是 int 或 Integer 值。
例如:
我有2014和1(1月),这个月的第一个星期一是6号,所以我想返回6。
问题:
我认为我可以使用 Calendar 来做到这一点,但我已经无法设置只有年和月可用的日历。此外,我不确定如何使用Calendar 实际返回每月/每年的第一个星期一。
我已经试过了:
Calendar cal = Calendar.getInstance();
cal.set(this.getYear(),getMonth(), 1);
int montag = cal.getFirstDayOfWeek();
for( int j = 0; j < 7; j++ ) {
int calc = j - montag;
if( calc < 0 ) {
calc += 6;
}
weekDays[calc].setText(getDayString(calc));
}
【问题讨论】:
-
不,
getFirstDayOfWeek只是一种本地化方法。请参阅文档:docs.oracle.com/javase/7/docs/api/java/util/… -
你在问 getFirstDayOfWeek() 是做什么的吗? The javadoc 告诉我们: 获取一周的第一天是什么;例如,美国的星期天,法国的星期一。
-
This question,虽然它要求“上周五”,但更适合您的问题;您可以轻松地按照此处显示的相同模式来解决您的问题。
-
为了响应您的编辑,您的原始代码几乎完全正确。唯一的错误是当你应该使用不同的函数时使用了 getFirstDayOfWeek (并且可能循环需要一些调整)。检查文档,你会找到你想要的功能。
标签: java