当前位置: 首页 > 面试题库 >

获取一个月的第一个星期一

庾勇军
2023-03-14
问题内容

我想获取特定月份/年份中第一个星期一的日期。

我有的:

我基本上有两个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()返回哪一天用作当前语言环境的开始。有些人认为星期一是第一天,其他人则认为是星期天,等等。

这看起来像你必须设置它为DAY_OF_WEEK = MONDAYDAY_OF_WEEK_IN_MONTH = 1作为就给你这个月的第一个星期一。要对年份进行相同操作,请先设置该MONTH值,JANUARY然后重复上述操作。

例:

private static Calendar cacheCalendar;

public static int getFirstMonday(int year, int month) {
    cacheCalendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
    cacheCalendar.set(Calendar.DAY_OF_WEEK_IN_MONTH, 1);
    cacheCalendar.set(Calendar.MONTH, month);
    cacheCalendar.set(Calendar.YEAR, year);
    return cacheCalendar.get(Calendar.DATE);
}

public static int getFirstMonday(int year) {
    return getFirstMonday(year, Calendar.JANUARY);
}

这是一个测试它的简单JUnit:http :
//pastebin.com/YpFUkjQG



 类似资料:
  • 问题内容: 我正在尝试编写这样的日历功能 是整数(1、2、3 …),$ day是一天(Sun,Mon,…)或数字,以较容易的一个为准。方向有些混乱,因为它进行了不同的计算。 举个例子 它使用默认值,并获得5月的第一个星期日,即2009-05-03。如果我们打电话 ,它将返回5月的第二个最后一个星期日,即2009-05-24。 问题答案: 也许可以使其更快。。。 代码非常有趣。 请注意,前进1表示反

  • 我想知道特定月份/年份的第一个星期一的日期。 我所拥有的: 我基本上有两个int变量,一个代表年份,一个代表月份。 我想要的是: 我想知道这个月的第一个星期一,最好是整数或整数值。 例如: 我有2014年和1月,这个月的第一个星期一是6号,所以我想返回6号。 问题: 我原以为我可以用做到这一点,但我在设置日历时遇到了问题,因为只有年份和月份可用。此外,我不知道如何使用返回月份/年份的第一个星期一。

  • 问题内容: 寻找一种获取日期格式为“11/1/2009”的日期的方法,这将是下个月的第一个星期日。我想在10月的第一个星期日之后运行此查询,以获取下个月的第一个星期日。用T-SQL查询完成此操作的最佳方法是什么? 谢谢 问题答案: 试试这个: 编辑说明: 下个月的第一个月由以下表达式给出: 或方式:将1更改为2,可以将其修改为从现在起两个月的第一个月: 编辑:作为对@NissanFan和@Anth

  • 我正在尝试提出一个CRON表达式,它允许我在一个月内的每个星期一运行一个石英触发器,第一个除外。 参考文献: http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/crontrigger.html https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron

  • 我试图弄清楚如何确定特定的星期一是给定月份的第一个、第二个、第三个还是第四个星期一。我已经弄清楚了如何使用LocalDate类获取下一个星期一和月中的一周。 在上面的例子中,代码获取下一个星期一及其所在的星期。星期是二月的第二周,但那个星期一不是第二个星期一,而是第一个星期一。如果您有任何帮助,我们将不胜感激。

  • 问题内容: 我对此有些挣扎。 我想设置日历为: 2012年2月的第三个星期一。 而且我找不到使用Java进行此操作的任何方法。 例如,如果我想将日历设置为2011年圣诞节,则可以通过以下方式轻松实现: 但是我对于如何设置它(比如说2012年阵亡将士纪念日)感到困惑,那是5月的最后一个星期一。这是我的代码,但显然是错误的,因为我根本无法假设5月的最后一个星期一将在那年5月的第4周: 关于如何以编程方