48 votes

Comment faire calendrier des opérations en Java GWT? Comment ajouter des jours à une Date?

Depuis GWT ne fournit pas la classe GregorianCalendar, comment faire un calendrier des opérations sur le client?

J'ai un rendez - a et je veux la Date, qui est - n jours après l' a.

Exemples:

a (2000-01-01) + n (1) -> 2000-01-02
a (2000-01-01) + n (31) -> 2000-02-01

67voto

Tony BenBrahim Points 3827

Mise à jour de réponse pour GWT 2.1

final Date dueDate = new Date();
CalendarUtil.addDaysToDate(dueDate, 21);

Edit: le nom complet de cette classe est com.google.gwt.de l'utilisateur.datepicker.client.CalendarUtil.

9voto

Chris Lercher Points 22134

La réponse que Google semble utiliser (pour l'instant), est:

  @SuppressWarnings("deprecation") // GWT requires Date
  public static void addDaysToDate(Date date, int days) {
    date.setDate(date.getDate() + days);
  }

C'est à partir de la classe com.google.gwt.user.datepicker.client.CalendarUtil, qui est utilisée par com.google.gwt.user.datepicker.client.DatePicker. J'imagine qu'il y aura des problèmes en cause, quand faire des calculs dans des fuseaux horaires différents.

Beaucoup de gens ont déjà voté pour une sorte de Joda temps pour GWT: http://code.google.com/p/google-web-toolkit/issues/detail?id=603 . Actuellement dernier commentaire unis, qu'il y a une nouvelle fourche de goda temps, peut-être que nous devrions vraiment check it out.

3voto

Norm Wright Points 61
private static final long MILLISECONDS_IN_SECOND = 1000l;
private static final long SECONDS_IN_MINUTE = 60l;
private static final long MINUTES_IN_HOUR = 60l;
private static final long HOURS_IN_DAY = 24l;
private static final long MILLISECONDS_IN_DAY = MILLISECONDS_IN_SECOND *
        SECONDS_IN_MINUTE *
        MINUTES_IN_HOUR *
        HOURS_IN_DAY;
public Date addDays (Date date, days)
{
 return new Date (date.getTime () + (days * MILLISECONDS_IN_DAY));
}

cela fonctionne avec les années bissextiles mais finalement errants en millisecondes sur des millénaires, lorsque nous ajouter ou supprimer des secondes intercalaires.

1voto

user471824 Points 11

J'ai créé un accidenté de la mise en œuvre qui émule le Fuseau horaire, Calendrier, et les paramètres Régionaux. N'hésitez pas à essayer ici:

http://code.google.com/p/gwt-calendar-class/downloads/list

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X