Android 如何将一个月中的某一天设置为一周中的某一天?

Android 如何将一个月中的某一天设置为一周中的某一天?,android,calendar,gregorian-calendar,Android,Calendar,Gregorian Calendar,在我的应用程序中,我可以为一周中的任何一天设置闹钟,我想显示一个祝酒词,显示下一个闹钟之前的时间,我为每一天设置一个值: 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.

在我的应用程序中,我可以为一周中的任何一天设置闹钟,我想显示一个祝酒词,显示下一个闹钟之前的时间,我为每一天设置一个值:

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();
这给了你第二天在加州的时间。 要获取dayname和number,请执行以下操作:

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

为了得到这一天,你可以

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.

我不明白这个问题。看来你能算出今天的天气了?您得到的值是否不正确?TimeUnit类可能会把事情弄清楚:我想知道最近一天的日期,例如,如果我选择sunday,我只会得到[0]我想知道日期并设置它,而不是“22”。哦,天哪,请不要使用字符串和子字符串。是的,问题是datelib已被弃用,日历几乎没有方法。但是祝你好运
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.