Опитвам се да разбера как да направя аларма в определен ден от седмицата. Ето примерен код, който отпечатва това, което очаквам:
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
Опитвам се да настроя аларма за определен ден от определена седмица. Днешната дата е 15 юни 2013 г. Може ли някой да ми обясни това. Времето за Joda не е опция за това, което правя, така че трябва да накарам това да работи с обикновените библиотеки на 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
Week of month: 1
- person jlordo   schedule 15.06.2013