private void validateIntervalDuration(ConferenceInterval interval) { LocalDateTime startDateTime = interval.getStartDateTime(); LocalDateTime endDateTime = interval.getEndDateTime(); long hours = startDateTime.until(endDateTime, ChronoUnit.HOURS); if (hours < MIN_CONFERENCE_DURATION_IN_HOURS) { throw new ValidationException( String.format( "Conference duration is %s hours, less than min of %s hour(s)", hours, MIN_CONFERENCE_DURATION_IN_HOURS)); } long days = startDateTime.until(endDateTime, ChronoUnit.DAYS); if (days > MAX_CONFERENCE_DURATION_IN_DAYS) { throw new ValidationException( String.format( "Conference duration is %s days, more than max of %s day(s)", days, MAX_CONFERENCE_DURATION_IN_DAYS)); } }
/** * Uses <code>List workoutHistoryLog</code> to build the bar chart series: * * <ul> * <li>Selects the last 7 days of workout history * <li>retrieves history data and formats dates for <code>xDateAxis</code> and total workout * time for that day for the <code>yWorkoutTimeAxis</code> * <li>adds all data to the series * </ul> */ private void makeWeekSeriesFromAccountHistory() { Locale eng = Locale.UK; LocalDateTime today = LocalDateTime.now(); String inputPattern = "yyyyMMddHHmm"; DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern(inputPattern, eng); String outputPattern = "EEEE"; // day with text DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern(outputPattern, eng); // Variables for history entries String inputDate; long timeToComplete; // LocalDateTime object for input date LocalDateTime dateOfCompletion; // String output for axis String formattedDateForAxis; long lastDate; // Search all workout entries in account's workout history // parse the input date string into a LocalDateTime for pattern formatting // find entries that are within the last week // add date against workout time to series for (WorkoutEntry entry : workoutHistoryLog) { // Get workout date from history entry inputDate = entry.getWorkoutDate(); dateOfCompletion = LocalDateTime.parse(inputDate, inputFormatter); formattedDateForAxis = dateOfCompletion.format(outputFormatter); // Check if within the last 7 days if (dateOfCompletion.until(today, ChronoUnit.WEEKS) == 0) { timeToComplete = entry.getWorkoutTime(); seriesW.getData().add(new XYChart.Data(formattedDateForAxis, timeToComplete)); } } }
public MircString lanCountdown() { LocalDateTime lan = LocalDateTime.of(2016, 4, 29, 18, 0, 0); LocalDateTime now = LocalDateTime.now(); Long seconds = now.until(lan, ChronoUnit.SECONDS); int totalSeconds = (60 * 60 * 24 * 365 * 1000); BigDecimal bigSeconds = new BigDecimal(totalSeconds); BigDecimal secondsLeft = new BigDecimal(seconds); BigDecimal millennia = secondsLeft.divide(bigSeconds, 50, RoundingMode.HALF_UP); String inputString = "There are " + seconds.toString() + " seconds to LAN - you'd better be prepared for it, mofos. Or, if you're Ragnar, there are " + millennia + " millennia left."; if (seconds < 0) { seconds = Math.abs(seconds); inputString = "LAN has been running for " + seconds.toString() + " seconds! Kick ass!"; } MircString mircString = MircString.of(inputString.toString()); return mircString; }
/** * Uses <code>List workoutHistoryLog</code> to build the bar chart series: * * <ul> * <li>Selects the last 30 days of workout history * <li>retrieves history data and formats dates for <code>xDateAxis</code> and total workout * time for that day for the <code>yWorkoutTimeAxis</code> * <li>adds all data to the series * </ul> */ private void makeMonthSeriesFromAccountHistory() { Locale eng = Locale.UK; LocalDateTime today = LocalDateTime.now(); String inputPattern = "yyyyMMddHHmm"; DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern(inputPattern, eng); String outputPattern = "dd/MM"; // day with text DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern(outputPattern, eng); // Variables for history entries String inputDate; long timeToComplete; long input; // LocalDateTime object for input date LocalDateTime dateOfCompletion; // LocalDateTime newDate = LocalDateTime.of(1900, 05, 16, 03); // String output for axis String formattedDateForAxis; // Search all workout entries in account's workout history // parse the input date string into a LocalDateTime for pattern formatting // find entries that are within the last week // add date against workout time to series for (int i = 0; i < workoutHistoryLog.size(); i++) { // Get workout date from history entry inputDate = workoutHistoryLog.get(i).getWorkoutDate(); // input = Long.parseLong(inputDate); dateOfCompletion = LocalDateTime.parse(inputDate, inputFormatter); formattedDateForAxis = dateOfCompletion.format(outputFormatter); // Check if within the last month if (dateOfCompletion.until(today, ChronoUnit.MONTHS) == 0) { timeToComplete = workoutHistoryLog.get(i).getWorkoutTime(); seriesM.getData().add(new XYChart.Data(formattedDateForAxis, timeToComplete)); if (i != workoutHistoryLog.size() - 1) { int diff = getDifference(inputDate, workoutHistoryLog.get(i + 1).getWorkoutDate()); LocalDateTime noWorkoutDate = dateOfCompletion; if (diff > 1) { for (int j = 0; j < diff - 1; j++) { noWorkoutDate.plusDays(j + 1); System.out.println(noWorkoutDate.plusDays(j + 1).format(outputFormatter)); seriesM .getData() .add(new XYChart.Data(noWorkoutDate.plusDays(j + 1).format(outputFormatter), 0)); } System.out.println("out"); } } } } }