我想弄清楚如何在一周中的特定日子发出警报。这是打印我期望的示例代码:
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.WEEK_OF_MONTH, 1);
System.out.println("Week of month: " + calendar.get(Calendar.WEEK_OF_MONTH)); // Week of month: 1
但是当我将它添加到代码中时,我得到了一个我不明白的结果:
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
calendar.set(Calendar.WEEK_OF_MONTH, 1);
System.out.println("Week of month: " + calendar.get(Calendar.WEEK_OF_MONTH)); // Week of month: 5
我正在尝试为特定一周中的特定日期设置闹钟。今天的日期是 2013 年 6 月 15 日。谁能给我解释一下。Joda time 不是我正在做的事情的选择,所以我需要使用常规的 Java 库来完成这项工作。感谢所有的帮助。
编者注
上面的代码会根据运行的日期返回不同的结果,因为Calendar.getInstance()
返回的是一个设置为当前时间的日历。要说明与当前时间无关的问题,请使用以下命令:
DateFormat dateFormat = DateFormat.getDateInstance();
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(1371294000000L);
System.out.println(dateFormat.format(calendar.getTime()));
calendar.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
System.out.println(dateFormat.format(calendar.getTime()));
calendar.set(Calendar.WEEK_OF_MONTH, 1);
System.out.println("Week of month: " + calendar.get(Calendar.WEEK_OF_MONTH));
System.out.println(dateFormat.format(calendar.getTime()));
输出类似这样的内容(至少如果您的默认语言环境使用公历):
Jun 15, 2013
Jun 13, 2013
Week of month: 5
May 30, 2013