package ar.com.javacuriosities.time; import java.time.Duration; import java.time.Instant; import java.time.LocalDate; import java.time.Month; import java.time.Period; import java.time.temporal.ChronoUnit; /* * Duration: Mide una cantidad de tiempo usando time units (Hours, Minutes, Seconds, Nanoseconds) * Period: Mide una cantidad de tiempo usando date units (Year, Month, Day) * * Es importante notar que el Duration no esta conectado al timeline por lo cual si agregamos un Duration equivalente a un día * esto es agregar 24HS ya que no tiene en cuenta el daylight o otras diferencias * * ChronoUnit es un Enum el cual define las distintas unidades de tiempo y algunos métodos útiles */ public class Lesson07PeriodAndDuration { public static void main(String[] args) throws Exception { // Duration Instant start = Instant.now(); Instant end = Instant.now(); long nanoseconds = Duration.between(start, end).toNanos(); System.out.println("Start: " + start); System.out.println("End: " + end); System.out.println("Diff: " + nanoseconds); Duration gap = Duration.ofSeconds(10); Instant later = start.plus(gap); System.out.println("Start + 10s : " + later); // Period LocalDate today = LocalDate.now(); LocalDate birthday = LocalDate.of(1985, Month.MAY, 6); Period period = Period.between(birthday, today); long chronoUnit = ChronoUnit.DAYS.between(birthday, today); System.out.println("You are " + period.getYears() + " years, " + period.getMonths() + " months, and " + period.getDays() + " days old. (" + chronoUnit + " days total)"); } }