Android 设置日历并添加1天
我有一个字符串,例如10月15日星期三,然后我必须得到这一天的第二天。我有一个方法,我用做这件事,但在本月之后,它抛出了错误的日期。方法如下:Android 设置日历并添加1天,android,android-calendar,Android,Android Calendar,我有一个字符串,例如10月15日星期三,然后我必须得到这一天的第二天。我有一个方法,我用做这件事,但在本月之后,它抛出了错误的日期。方法如下: public String getNextDay(String lastDate) { String[] wholedate = lastDate.split("\\s+"); String datemon = wholedate[0]; String date = wholedate[1]; String dateday
public String getNextDay(String lastDate) {
String[] wholedate = lastDate.split("\\s+");
String datemon = wholedate[0];
String date = wholedate[1];
String dateday = wholedate[2];
Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.SUNDAY);
SimpleDateFormat df = new SimpleDateFormat("MMM dd cccc");
int dayNo=0;
if (dateday.equalsIgnoreCase("Sunday")) {
dayNo = Calendar.SUNDAY;
} else if (dateday.equalsIgnoreCase("Monday")) {
dayNo = Calendar.MONDAY;
} else if (dateday.equalsIgnoreCase("Tuesday")) {
dayNo = Calendar.TUESDAY;
} else if (dateday.equalsIgnoreCase("Wednesday")) {
dayNo = Calendar.WEDNESDAY;
} else if (dateday.equalsIgnoreCase("Thursday")) {
dayNo = Calendar.THURSDAY;
} else if (dateday.equalsIgnoreCase("Friday")) {
dayNo = Calendar.FRIDAY;
} else if (dateday.equalsIgnoreCase("Saturday")) {
dayNo = Calendar.SATURDAY;
}
int monNo = 0;
if (datemon.equalsIgnoreCase("Jan")) {
monNo = Calendar.JANUARY;
} else if (datemon.equalsIgnoreCase("Feb")) {
monNo = Calendar.FEBRUARY;
} else if (datemon.equalsIgnoreCase("Mar")) {
monNo = Calendar.MARCH;
} else if (datemon.equalsIgnoreCase("Apr")) {
monNo = Calendar.APRIL;
} else if (datemon.equalsIgnoreCase("May")) {
monNo = Calendar.MAY;
} else if (datemon.equalsIgnoreCase("Jun")) {
monNo = Calendar.JUNE;
} else if (datemon.equalsIgnoreCase("Jul")) {
monNo = Calendar.JULY;
} else if (datemon.equalsIgnoreCase("Aug")) {
monNo = Calendar.AUGUST;
} else if (datemon.equalsIgnoreCase("Sep")) {
monNo = Calendar.SEPTEMBER;
} else if (datemon.equalsIgnoreCase("Oct")) {
monNo = Calendar.OCTOBER;
} else if (datemon.equalsIgnoreCase("Nov")) {
monNo = Calendar.NOVEMBER;
} else if (datemon.equalsIgnoreCase("Dec")) {
monNo =Calendar.DECEMBER;
}
cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(date));
cal.set(Calendar.MONTH, monNo);
cal.set(Calendar.DAY_OF_WEEK, dayNo);
cal.add(Calendar.DATE, 1);
String fd = df.format(cal.getTime());
return fd;
}
也许我把日期设置错了,或者我需要为日期设置更多,或者也许有更好的方法。非常感谢。如果我是你,我会喜欢这个
Calendar c = Calendar.getInstance();
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
SimpleDateFormat df = new SimpleDateFormat("EEEE dd-MMM-yyyy", Locale.ENGLISH);
c.add(Calendar.DATE, 1);
String nextDate = df.format(c.getTime());
我的简单解决方案是调用Calendar.getTimeInMillis来获取UTC时间戳,向其添加24x60x60x1000毫秒,然后将其放入另一个日历中
这种方法不需要其他额外步骤。它应该是无错误的,尽管效率可能有点低。然而,我把简单性作为第一要务。我终于知道如何做到这一点,不设置星期几。由于某种原因,它把日期弄乱了。所以现在,我只是一个月一个月地设定日期,我工作得很好。谢谢你们。怎么了?我需要的日期格式是MMM dd cccc,我有数据设置为日期。