Вызывайте AlertDialog на определенную дату каждый год

#android #date #calendar #android-alertdialog

#Android #Дата #Календарь #android-alertdialog

Вопрос:

Я пытаюсь вызывать AlertDialog на определенную дату каждый год при запуске приложения в определенный день, который определен, но что-то не получается, и я прошу вашей помощи. Обратите внимание, например, 11 ноября каждого года необходимо запускать AlertDialog весь день при запуске приложения, а при запуске 12 ноября AlertDialog не будет отображаться до 11 ноября следующего года. Заранее спасибо.

     Calendar start = Calendar.getInstance();
    start.set(Calendar.YEAR, Calendar.NOVEMBER, 11);
    Date today = start.getTime();
    if(start.equals(today)){
        showStartDialog();
    }
  

Ответ №1:

Вы можете попробовать

 Calendar start = Calendar.getInstance();
Date today = start.getTime();
start.set(calendar.get(Calendar.YEAR), Calendar.NOVEMBER, 11)
if(start.getTime().equals(today)){
   showStartDialog();
}
  

Или вы можете просто

 Calendar start = Calendar.getInstance();
int month = start.get(Calendar.MONTH)
int dayOfMonth = start.get(Calendar.DAY_OF_MONTH)
if (month == Calendar.November amp;amp; dayOfMonth == 11) { ...}
  

Комментарии:

1. У вас есть еще какое-нибудь решение, потому что это не работает, спасибо.

2. Что вы получаете, когда звоните calendar.get(Calendar.MONTH) и calendar.get(Calendar.DAY_OF_MONTH) ?

3. Дата сегодня = start.getTime(); если(calendar.equals(сегодня)){ showStartDialog(); }

4. Я не понимаю вашей логики. Вы меняете календарь и переносите его на 11 ноября, а затем, если календарь равен дате. start это календарь, а сегодня — дата, они никогда не будут равны