Je suis relativement nouveau à Scala et Jodatime, mais j'ai été assez impressionné par les deux. J'essaie de comprendre s'il y a un moyen plus élégant de faire une date d'arithmétique. Voici une méthode:
private def calcDuration() : String = { val p = new Period(calcCloseTime.toInstant.getMillis - calcOpenTime.toInstant.getMillis) val s : String = p.getHours.toString + ":" + p.getMinutes.toString + ":" + p.getSeconds.toString return s }
3 Réponses :
fait Ce lien aide?
Comment puis-je calculer la différence entre deux dates? p>
Cette question a plus d'une réponse! Si vous voulez simplement le nombre de jours entiers entre deux dates, vous pouvez utiliser la nouvelle classe de jours dans la version 1.4 de Joda-Time. P>
Period p = new Period(startDate, endDate, PeriodType.yearMonthDay());
Veuillez inverser la réponse, étant donné que les informations utiles dans ce lien étaient déjà collées dans la réponse. Il n'est pas nécessaire d'aller à la source, mais vous pouvez le citer à la fin. (J'ai essayé de modifier votre réponse mais j'ai eu quelque chose de la file d'attente de modification complète: s)
Vous voudrez peut-être jeter un coup d'œil à l'enveloppe de Jorge Ortiz pour Joda-Time, Scala-Time A > Pour quelque chose qui est un peu plus agréable à travailler avec Scala. Vous devriez alors pouvoir utiliser quelque chose comme P> (calcOpenTime to calcCloseTime).millis
Merci Jon, je vais regarder dans l'emballage.
Période Code> Le formatage est effectué par le Formes de périphérie classe. Vous pouvez utiliser une valeur par défaut ou construire votre propre utilisation avec PéritièreFormatterBuilder A >. Cela peut prendre un peu plus de code, car vous voudrez peut-être définir ce constructeur correctement, mais vous pouvez l'utiliser par exemple comme:
scala> val p2 = new Period(new LocalDate(2010,1,1), new LocalDate(2010,1,2))
p2: org.joda.time.Period = P1D
scala> hms print p2
res1: java.lang.String = 00:00:00
Fonctionne génial, mais a besoin de parenthèses à la fin de ToFormatter: ... appendendeconds () ToFormatter () Code>