public static String elapsedTime(Date d1, Date d2){ try{ Duration period = Duration.between(d1.toInstant(), d2.toInstant()); // Note: this will become easier with Java 9, using toDaysPart() etc. long days = period.toDays(); period = period.minusDays(days); long hours = period.toHours(); period = period.minusHours(hours); long minutes = period.toMinutes(); period = period.minusMinutes(minutes); long seconds = period.getSeconds(); return days + " days, " + hours + " hours, " + minutes + " minutes, " + seconds + " seconds"; } catch(java.lang.IllegalArgumentException e) { log.warn(e); } return ""; }
@Override public Argument build(Duration duration, ConfigRegistry config) { Duration d = duration; final boolean isNegative = d.isNegative(); if (isNegative) { d = d.negated(); } final long days = d.toDays(); if (days > Integer.MAX_VALUE) { throw new IllegalArgumentException( String.format("duration %s too large to be represented unambiguously as postgres interval", d)); } d = d.minusDays(days); final int hours = (int) d.toHours(); d = d.minusHours(hours); final int minutes = (int) d.toMinutes(); d = d.minusMinutes(minutes); if (d.getNano() % 1000 != 0) { throw new IllegalArgumentException( String.format("duration %s too precise to represented as postgres interval", d)); } double seconds = d.getSeconds() + d.getNano() / 1e9; final PGInterval interval = new PGInterval(0, 0, (int) days, hours, minutes, seconds); if (isNegative) { interval.scale(-1); } return ObjectArgument.of(interval, Types.OTHER); } }
private static String formatTime(long timeInMilliseconds) { Duration duration = Duration.ofMillis(timeInMilliseconds); long days = duration.toDays(); long hours = duration.minusDays(days).toHours(); long minutes = duration.minusHours(duration.toHours()).toMinutes(); return format("%dd %dh %dm", days, hours, minutes); }
public static String elapsedTime(Date d1, Date d2){ try{ Duration period = Duration.between(d1.toInstant(), d2.toInstant()); // Note: this will become easier with Java 9, using toDaysPart() etc. long days = period.toDays(); period = period.minusDays(days); long hours = period.toHours(); period = period.minusHours(hours); long minutes = period.toMinutes(); period = period.minusMinutes(minutes); long seconds = period.getSeconds(); return days + " days, " + hours + " hours, " + minutes + " minutes, " + seconds + " seconds"; } catch(java.lang.IllegalArgumentException e) { log.warn(e); } return ""; }
Duration durationMinusDays = absDuration.minusDays(days); if (durationMinusDays.getSeconds() != 0) { int hours = (int) durationMinusDays.getSeconds() / (60 * 60);
Duration durationMinusDays = absDuration.minusDays(days); if (durationMinusDays.getSeconds() != 0) { int hours = (int) durationMinusDays.getSeconds() / (60 * 60);
builder.append(days); builder.append('D'); duration = duration.minusDays(days);
remainingTime = duration.minusDays(days);
Duration toEvening = Duration.between(evening, time); if(fromMorning.isNegative()) toEvening=toEvening.plusDays(1); else if(!toEvening.isNegative()) fromMorning=fromMorning.minusDays(1); l1.setText(format(fromMorning, "morning")); l2.setText(format(toEvening, "evening"));
public ShiftTemplate(Integer rotationLength, ShiftTemplateView shiftTemplateView, Spot spot, Employee rotationEmployee) { super(shiftTemplateView); this.spot = spot; this.rotationEmployee = rotationEmployee; this.startDayOffset = (int) (shiftTemplateView .getDurationBetweenRotationStartAndTemplateStart() .toDays()); this.startTime = LocalTime.ofSecondOfDay(shiftTemplateView .getDurationBetweenRotationStartAndTemplateStart() .minusDays(startDayOffset) .getSeconds()); int endDayAfterStartDay = ((int) (shiftTemplateView .getDurationBetweenRotationStartAndTemplateStart() .plus(shiftTemplateView.getShiftTemplateDuration()) .toDays())); this.endTime = LocalTime.ofSecondOfDay(shiftTemplateView .getDurationBetweenRotationStartAndTemplateStart() .plus(shiftTemplateView.getDurationOfTimeslot()) .minusDays(endDayAfterStartDay) .getSeconds()); this.endDayOffset = endDayAfterStartDay % rotationLength; }
@Override public Argument build(Duration duration, ConfigRegistry config) { Duration d = duration; final boolean isNegative = d.isNegative(); if (isNegative) { d = d.negated(); } final long days = d.toDays(); if (days > Integer.MAX_VALUE) { throw new IllegalArgumentException( String.format("duration %s too large to be represented unambiguously as postgres interval", d)); } d = d.minusDays(days); final int hours = (int) d.toHours(); d = d.minusHours(hours); final int minutes = (int) d.toMinutes(); d = d.minusMinutes(minutes); if (d.getNano() % 1000 != 0) { throw new IllegalArgumentException( String.format("duration %s too precise to represented as postgres interval", d)); } double seconds = d.getSeconds() + d.getNano() / 1e9; final PGInterval interval = new PGInterval(0, 0, (int) days, hours, minutes, seconds); if (isNegative) { interval.scale(-1); } return ObjectArgument.of(interval, Types.OTHER); } }