Français - English
Source: svn://svn.saintamh.org/code/lib-java/trunk/src/org/saintamh/date/
Source (en couleurs): http://svn.saintamh.org/code/lib-java/trunk/src/org/saintamh/date/
Mise à jour 2015: j'ai écrit ce package il y a plusieurs années déjà. La version 8 de Java offre maintenant le package java.time, qui satisfait tous les besoins de ce code-ci.

Ce package vise à remplacer java.util.Date et java.util.Calendar. Son design est fortement inspiré par (directement copié, en fait) datetime de Python ou de Perl. Plus particulièrement:

 

Par exemple:

    Date d1 = new Date (1979, 5, 27);
    Date d2 = new Date (1986, 8, 16);

    // The objects implement Comparable, so can be sorted using the usual methods:
    assert d1.compareTo(d2) < 0;

    // strftime and strptime allow conversion to/from strings
    assert d1.strftime("%Y-%m-%d").equals ("1979-05-27");
    assert Date.strptime("1979-05-27", "%Y-%m-%d").equals(d1);

    // The objects are immutable and have proper definitions of hashCode and
    // equals, so they're safe to use as HashMap keys:
    HashMap<Date,String> dateMap = new HashMap<Date,String>();
    dateMap.put (d1, "d1");
    dateMap.put (d2, "d2");
    assert dateMap.get(d1) == "d1";
    assert dateMap.get(d1) != "d2";

    // "delta" objects simplify date arithmetic
    DateDelta delta = d2.difference(d1);
    asset d1.add(delta).equals (d2);

 

Cet exemple utilise seulement la classe Date, mais DateTime et Time fonctionnent de manière similaire, comme on pourrait s'y attendre. Vous pouvez trouver des tests un peu plus complets dans DateTests.java.

Vous pouvez voir ce module à l'oeuvre p.e. dans le code source de FIP.