2015-09-18 1 views
1

в моем приложении я могу установить будильник для любых дней недели, я хочу, чтобы отобразить тост с временем до следующей тревоги, я установил значение на каждый день:Как установить день месяца для дня недели?

String[] str = new String[7]; 
str[0] = getResources().getString(R.string.weeks_sunday); 
str[1] = getResources().getString(R.string.weeks_monday); 
str[2] = getResources().getString(R.string.weeks_tuesday); 
str[3] = getResources().getString(R.string.weeks_wednesday); 
str[4] = getResources().getString(R.string.weeks_thursday); 
str[5] = getResources().getString(R.string.weeks_friday); 
str[6] = getResources().getString(R.string.weeks_Saturday); 
weeks = str; 

Это то, что я сделать, чтобы вычислить время следующей тревоги, но я не знаю, как знать Тесный день

String substr = ":"; 
    String before = aTime.substring(0, aTime.indexOf(substr)); 
    int bef = Integer.parseInt(before); 
    String after = aTime.substring(aTime.indexOf(substr) + substr.length()); 
    int aft = Integer.parseInt(after); 

    int year = c.get(Calendar.YEAR); 
    int month = c.get(Calendar.MONTH); 
    int dayy = c.get(Calendar.DAY_OF_MONTH); 

    GregorianCalendar date = new GregorianCalendar(); 
    long currentTime = date.getTimeInMillis(); 
    GregorianCalendar calendar = new GregorianCalendar(); 
    calendar.set(year, month, 22, bef, aft, 0); 
    long difference = calendar.getTimeInMillis()-currentTime; 

    long x = difference/1000; 
    long seconds = x % 60; 
    x /= 60; 
    long minutes = x % 60; 
    x /= 60; 
    long hours = x % 24; 
    x /= 24; 
    long days = x;  



    if(hours == 1){ 
      Toast.makeText(AddAlarmActivity.this, "Alarm set for " + days + " days, " + hours + " hour and " + minutes + " minutes from now", Toast.LENGTH_LONG).show(); 
    }else if(hours >= 2){ 
      Toast.makeText(AddAlarmActivity.this, "Alarm set for " + days + " days, " + hours + " hours and " + minutes + " minutes from now", Toast.LENGTH_LONG).show(); 
+0

Я не понимаю вопроса. Похоже, вы смогли рассчитать день просто отлично? Вы получаете неправильные значения? Класс TimeUnit может прояснить ситуацию: http://stackoverflow.com/a/7829642/3131147 – AdamMc331

+0

Я хочу знать дату на ближайший день, например, если я выбираю воскресенье, я получу только [0] Я хочу знать дате и установите его вместо «22» – GusDev

ответ

0
Date date = calendar.add(Date, 1); 

Это даст вам следующий день в кале. Для получения DAYNAME и номер:

String dayname = date.toString().substring(0, 3); 
String temp = date.toString().substring(8, 10); 
Integer day = Integer.parseInt(temp); 
+0

oh god, пожалуйста, не используйте toString и подстроку. – Jin

+0

Да, проблема в том, что datelib устарел, и в календаре есть несколько методов. но удачи – XxGoliathusxX

1

Чтобы получить день, вы можете сделать

final Calendar calendar = Calendar.getInstance(); 
calendar.setTime(date); 
final int day = calendar.get(Calendar.DAY_OF_WEEK); 

switch (day) { 
    case Calendar.SUNDAY: 

} 

// or you can just match the day to your day name string. 

 Смежные вопросы

  • Нет связанных вопросов^_^