Joda Time LocalTime de 24:00 en fin de journée

Nous sommes en train de créer une application de planification et nous avons besoin de représenter quelqu'un est disponible à l'annexe au cours de la journée, peu importe l'heure de la zone ils sont. S'inspirant de Joda de Temps d'Intervalle, ce qui représente un intervalle de temps absolu entre les deux instances (démarrer inclusive, à la fin de l'exclusivité), nous avons créé un LocalInterval. Le LocalInterval est composé de deux LocalTimes (démarrer inclusive, à la fin de l'exclusivité), et nous avons même fait une pratique de classe pour la persistance de cette en mise en veille prolongée.

Par exemple, si quelqu'un est disponible à partir de 1:00 à 5:00, nous donnerait:

new LocalInterval(new LocalTime(13, 0), new LocalTime(17, 0));

Jusqu'ici tout va bien---jusqu'à ce que quelqu'un veut être disponible à partir de 11:00 jusqu'à minuit sur un jour. Depuis la fin d'un intervalle est exclusif, ce devrait être facilement représentées en tant que telles:

new LocalInterval(new LocalTime(23, 0), new LocalTime(24, 0));

Ack! Sans aller. Cela lève une exception, parce que LocalTime ne peut pas tenir une heure de plus de 23.

Cela semble être un défaut de conception de moi---Joda ne pense pas que quelqu'un peut vouloir un LocalTime qui représente un non-inclusive point de terminaison.

C'est vraiment frustrant, comme il souffle un trou dans ce qui était par ailleurs un très élégant modèle que nous avons créé.

Quelles sont mes options---autres que de bifurquer Joda et de prendre le contrôle de 24 heures? (Non, je n'aime pas la possibilité d'utiliser une valeur factice---dire 23:59:59---pour représenter 24:00.)

Mise à jour: Pour ceux qui ne cessent de dire qu'il n'y a pas une telle chose comme 24:00, voici une citation de la norme ISO 8601-2004 4.2.3 Notes 2,3: "La fin d'un calendrier jour [24:00] coïncide avec [00:00] au début du jour suivant ..." et les "Représentations où [hh] avec la valeur [24] ne sont privilégiées pour représenter la fin d'un intervalle de temps ...."

source d'informationauteur Garret Wilson | 2011-03-21