当前位置: 首页 > 知识库问答 >
问题:

日历-每周日期-Java

韩照
2023-03-14
public static void main(String[] args) {
  int week = 1;
  int year = 2010;


  Calendar calendar = Calendar.getInstance();
  calendar.clear();
  calendar.set(Calendar.WEEK_OF_YEAR, week);
  calendar.set(Calendar.YEAR, year);


  Date date = calendar.getTime();
  System.out.println(date);
}

我正在寻找确切的开始和结束日期根据我们的桌面日历,如果我给周,年作为输入。但是上面的代码给出的输出是2009年1月27日星期日。我知道这是因为按照我们的说法,一周的第一天默认是星期天,但我需要按照桌面日历2010年1月1日,星期五作为一周的开始日期

我的要求:如果我的输入是:

  • 本周为“1”

我需要:

   1st May, 2015 --> as first day of the week
   2nd May, 2015 --> as last day of the week

如果我的输入是:

  • 一周为'1',
  • 月份为'6',
  • 年份为'2015'

我需要:

   1st June, 2015 --> as first day of the week
   6th June, 2015 --> as last day of the week

有人能帮我吗?


共有2个答案

姬昀
2023-03-14

我写了一个Swing日历小部件。该小部件中的一种方法计算一周的第一天,即一周从用户选择的一天开始,例如星期五。

startOfWeek是一个整数,它采用日历常量,如Calendar。星期五

周中的天是一个整数常量,值为7。

/**
 * This method gets the date of the first day of the calendar week. It could
 * be the first day of the month, but more likely, it's a day in the
 * previous month.
 * 
 * @param calendar
 *            - Working <code>Calendar</code> instance that this method can
 *            manipulate to set the first day of the calendar week.
 */
private void getFirstDate(Calendar calendar) {
    int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) % DAYS_IN_WEEK;
    int amount = 0;
    for (int i = 0; i < DAYS_IN_WEEK; i++) {
        int j = (i + startOfWeek) % DAYS_IN_WEEK;
        if (j == dayOfWeek) {
            break;
        }
        amount--;
    }
    calendar.add(Calendar.DAY_OF_MONTH, amount);
}

其余的代码可以在我的文章Swing JCalendar Component中看到。

孟泽宇
2023-03-14

而不是使用日历。每周,使用日历。一年中的第二天。我刚刚测试过,它对我有效:

public static void main(String[] args) {
    Calendar calendar = Calendar.getInstance();
    calendar.clear();
    calendar.set(Calendar.YEAR, 2010);
    calendar.set(Calendar.DAY_OF_YEAR, 1);
    System.out.println(calendar.getTime());
    calendar.set(Calendar.DAY_OF_YEAR, 7);
    System.out.println(calendar.getTime());
}

如果你想让它在任意一周内工作,只需做一些数学运算来确定你想要一年中的哪一天。

编辑:如果你想输入一个月,你可以使用日历。一个月的第二天。

 类似资料:
  • 用户可以像这样在手机中设置他们的自定义开始日期。再加上不同的文化,一周开始的日子也不同: 澳大利亚,英国:周日,周一。。。,星期六 中国:周一,周二。。。,星期日 这意味着在开发日历功能时,我们可能有许多不同的一周中的日子从(从左到右)开始我们的日历,以使用户体验最佳。 我们可以定制日历,以确定一周中的具体开始日期: 问题在于将我的自定义日历更新为用户的系统日历。 当我使用Calender(从用户

  • 问题内容: 我有一个小问题,我正在开发一个应用程序,我需要将每周的开始日期从星期一更改为另一个(星期四,星期六)。在Android中这可能吗,我需要计算周的开始及其知道日期的结束。(例如,星期几从星期四开始) 注意:我只是android开发的初学者。这是我的代码SimpleDateFormat dateformate = new SimpleDateFormat(“ dd / MM”); 使用上面

  • 我有一个小问题,我正在开发一个应用程序,我需要将一周的开始日从星期一更改为另一个(星期四,星期六)。这在android中可能吗,我需要计算一周的开始和结束知道日期。(例如,一周从星期四开始) 注意:我只是android开发的初学者。这是我的代码SimpleDataFormat DateFormat=new SimpleDataFormat(“dd/MM”); 使用上面的代码,我得到了结果,但星期一

  • 假设我有一些账单,上面有开始日期和结束日期。 我要检查的商业规则是 例如,3月10日到4月9日大约相隔一个月,所以我用它来检查任何两个连续的账单开始日期(4月10日和3月10日)是否相隔一个月。 现在我的问题是求周期的长度。例如,假设我有以下数据集 我正在使用JodaTime库,所以我说类似这样的话 它返回0,这是正确的,但没有用处。 结果是1,尽管相隔一天。 有什么更好的方法来做到这一点?我可以

  • 我得到一个日历实例 在一个移动显示周六为周末而在另一个它显示周日为周末两个设备的时区是相同的 如果我将日历实例区域设置为美国或任何其他国家/地区,它可以完美运行。但我不希望它是恒定的。我希望它是区域性的,但在所有设备上都是一致的 如果时区相同,我希望两台设备上的周末都一样

  • 我在本教程的帮助下制作了日历:http://droidwalk.blogspot.it/2012/11/android-calendar-sample.html ..但是这个日历从星期天开始,我想从星期一开始。。我试图改变价值观​​在函数中设置对象GregorianCalendar,但它不会给出所需的结果。本周从周一开始,但在某些月份,我们失去了第一周。我发现了一个类似的问题:从周一开始制作日历,