moins - Comment faire des opérations de calendrier dans Java GWT? Comment ajouter des jours à une date?





mois precedent (5)


La réponse que Google semble utiliser (actuellement), est:

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

Cela vient 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 impliqués, en faisant des calculs dans différents fuseaux horaires.

Beaucoup de gens ont déjà voté pour une heure de Joda pour GWT: http://code.google.com/p/google-web-toolkit/issues/detail?id=603 . Le dernier commentaire indique qu'il y a une nouvelle fourchette de temps goda, peut-être que nous devrions vraiment vérifier.

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

J'ai une Date a et je veux la Date, qui est n jours après a .

Exemples:

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



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 fonctionnera avec les années bissextiles, mais finira par s'écarter de quelques millisecondes sur des millénaires lorsque nous ajouterons ou laisserons tomber des secondes intercalaires.










Oui, un nombre quelconque de constructeurs peuvent être présents dans une classe et ils peuvent être appelés par un autre constructeur en utilisant this() [Veuillez ne pas confondre this() constructeur avec this mot this clé]. this() ou this(args) devrait être la première ligne du constructeur.

Exemple:

Class Test {
    Test() {
        this(10); // calls the constructor with integer args, Test(int a)
    }
    Test(int a) {
        this(10.5); // call the constructor with double arg, Test(double a)
    }
    Test(double a) {
        System.out.println("I am a double arg constructor");
    }
}

C'est ce qu'on appelle la surcharge du constructeur.
S'il vous plaît noter que pour le constructeur seul le concept de surcharge est applicable et non l'héritage ou le dépassement.







java gwt