【问题标题】:How tdo I get the day of the week, of the first day of the month? [duplicate]我如何获得一周中的某一天,一个月的第一天? [复制]
【发布时间】:2011-03-20 23:51:40
【问题描述】:

2010 年 7 月 1 日对应一个星期四,我如何以编程方式获取星期四的值。

【问题讨论】:

  • Calendar.get(Calendar.DAY_OF_WEEK)?

标签: java


【解决方案1】:
Calendar day= new GregorianCalendar(2010, Calendar.JULY, 1);
int dayOfWeek = day.get(Calendar.DAY_OF_WEEK); // 5=Thursday

【讨论】:

    【解决方案2】:
    public static Date shiftDayOfWeekinMonth(Date input, int monthsToAdd) {
    
    Calendar cal = Calendar.getInstance();
    cal.setTime(input);
    
    int dayOfWeekInMonth = cal.get(GregorianCalendar.DAY_OF_WEEK_IN_MONTH);
    int month = cal.get(GregorianCalendar.MONTH);
    
    // month increment
    cal.add(GregorianCalendar.MONTH, monthsToAdd);
    // sets the day of week in month
    cal.set(GregorianCalendar.DAY_OF_WEEK_IN_MONTH, dayOfWeekInMonth);
    
    //overflow month control
    int currentMonthIndex = (month + monthsToAdd) % 12;
    if (currentMonthIndex != cal.get(GregorianCalendar.MONTH)) {
        cal.add(GregorianCalendar.DAY_OF_WEEK_IN_MONTH, -1);
    }
    
    return cal.getTime();
    }
    

    使用此方法获取从输入日期开始的每个月的一周中的任何天。

    【讨论】:

      【解决方案3】:

      乔达时间

      使用Joda-Time 2.5 库而不是臭名昭著的麻烦 java.util.Date 和 .Calendar 类。

      星期数由ISO 8601 标准定义。星期一是一,星期日是七。

      DateTimeZone zone = DateTimeZone.forID( "America/Montreal" );
      DateTime firstOfMonth = DateTime.now( zone ).withDayOfMonth( 1 ).withTimeAtStartOfDay();
      int dayOfWeekNumber = firstOfMonth.getDayOfWeek(); 
      String dayName = DateTimeFormat.forPattern( "EEEE" ).withLocale( Locale.CANADA_FRENCH ).print( firstOfMonth );  
      

      【讨论】:

        【解决方案4】:

        通过传递年份和月份作为参数使用以下方法

        private String getFirstWeekOfTheMonth(int year, int month){
            String weeks[] = new String[]{"Sunday", "Monday", "Tuesday", "Wednesday", "Thusday", "Friday", "Sunday"};
            Calendar calender = Calendar.getInstance();
            calender.set(year, month, 1);
            return weeks[calender.get(Calendar.DAY_OF_WEEK)-1];
        }
        

        示例:-

        String currentWeek = getFirstWeekOfTheMonth(2010, Calendar.JULY);
        

        当前周是星期四

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-12-12
          • 1970-01-01
          • 2021-07-30
          • 1970-01-01
          • 2012-07-10
          • 2015-04-03
          • 2013-01-16
          • 1970-01-01
          相关资源
          最近更新 更多