Подтвердить что ты не робот

Android, как получить завтра дату

В моем приложении для Android... Мне нужно отобразить дату завтрашнего дня.. например, сегодня 5 марта, поэтому мне нужно отобразить как 6 марта. Я знаю код для получения сегодняшней даты, месяца и года..

вычисление daet

    GregorianCalendar gc = new GregorianCalendar();
    yearat = gc.get(Calendar.YEAR);
    yearstr = Integer.toString(yearat);
    monthat = gc.get(Calendar.MONTH) + 1;
    monthstr = Integer.toString(monthat);
    dayat = gc.get(Calendar.DAY_OF_MONTH);
    daystr = Integer.toString(dayat);

Если я даю код вроде

dayat = gc.get(Calendar.DAY_OF_MONTH) + 1;

это то, что будет отображать дату завтрашнего дня.. или просто добавить одну к сегодняшней дате... например, если сегодня 31 января.. и если я даю выше код, он будет отображаться как 1 или 32. Если он отображает 32, какое изменение мне нужно сделать в коде... пожалуйста, помогите..

4b9b3361

Ответ 1

  • Получить сегодня дату как Calendar.

  • Добавьте к нему 1 день.

  • Формат для отображения.

Например,

GregorianCalendar gc = new GregorianCalendar();
gc.add(Calendar.DATE, 1);
// now do something with the calendar

Ответ 2

Используйте следующий код для отображения завтрашней даты

Calendar calendar = Calendar.getInstance();
Date today = calendar.getTime();

calendar.add(Calendar.DAY_OF_YEAR, 1);
Date tomorrow = calendar.getTime();

Использовать SimpleDateFormat для форматирования даты как строки:

DateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy");

String todayAsString = dateFormat.format(today);
String tomorrowAsString = dateFormat.format(tomorrow);

System.out.println(todayAsString);
System.out.println(tomorrowAsString);

Печать

05-Mar-2014
06-Mar-2014

Ответ 3

Calendar calendar = Calendar.getInstance();
Date today = calendar.getTime();

calendar.add(Calendar.DAY_OF_YEAR, 1);
Date tomorrow = calendar.getTime();

Ответ 4

вам нужно добавить только 1 в день календаря.

GregorianCalendar gc = new GregorianCalendar();
gc.add(Calendar.DATE, 1);

Ответ 5

java.util.Date и java.util.Calendar страшно работать. Я предлагаю вам использовать JodaTime, который имеет более чистый/более удобный API. В настоящее время JodaTime довольно стандартная.

http://www.joda.org/joda-time/#Why_Joda-Time

Обратите внимание, что JDK 8 представит новый API с датой/временем, сильно зависящий от JodaTime.

Ответ 6

первые ответы в значительной степени охватывают возможности. но здесь еще одно решение, которое вы можете использовать из org.apache.commons.lang.time:

Date lTomorrow = DateUtils.addDays(new Date(), 1);

Ответ 7

Другие параметры:

Calendar tomorrow = Calendar.getInstance();
tomorrow.roll(Calendar.DATE, true);

или

tomorrow.roll(Calendar.DATE, 1);

roll также можно использовать для возврата во времени путем передачи отрицательного числа, например, например:

Calendar yesterday = Calendar.getInstance();
yesterday.roll(Calendar.DATE, -1);

Ответ 8

Классы java.util.Date и .Calendar, как известно, хлопотны. Избежать их. Вместо этого используйте Joda-Time библиотеку или новый пакет java.time в комплекте с Java 8.

Пример кода с использованием библиотеки Joda-Time 2.3.

DateTimeZone timeZone = DateTimeZone.forID( "Europe/Paris" );
DateTime now = new DateTime( timeZone );
DateTime tomorrow = now.plusDays( 1 );
String output = DateTimeFormat.forPattern( "FF" ).withLocale(Locale.FRANCE).print( tomorrow );

Ответ 9

Получить сегодняшнюю дату с помощью календаря, а затем добавить 1 день к нему.

Ответ 10

Попробуйте вот так.

dayat = gc.add(Calendar.DATE, 1);