So bestimmen Sie ein Datum zwischen Freitag und Sonntag der Woche zu einer bestimmten Zeit

Ich versuche, mit Java ein aktuelles Datum und eine Uhrzeit zwischen Freitag, 17:42 Uhr und Sonntag, 17:42 Uhr der Woche zu ermitteln.

Im Moment mache ich das mit wirklich wirklich schlechtem Codeblock. Es war eine eilige Lösung. Jetzt bin ich refactoring, aber ich konnte keine Methode in Joda oder etc. finden.

Irgendwelche Ideen? Vielen Dan

private final Calendar currentDate = Calendar.getInstance();
private final int day = currentDate.get(Calendar.DAY_OF_WEEK);
private final int hour = currentDate.get(Calendar.HOUR_OF_DAY);
private final int minute = currentDate.get(Calendar.MINUTE);

if (day != 1 && day != 6 && day != 7) {
    if (combined != 0) {
        return badge == 1;
    } else {
        return badge == product;
    }
} else {
    if (day == 6 && hour > 16) {
        if (hour == 17 && minute < 43) {
            if (combined != 0) {
                return badge == 1;
            } else {
                return badge == product;
            }
        } else {
            return badge == 0;
        }
    } else if (day == 6 && hour < 17) {
        if (combined != 0) {
            return badge == 1;
        } else {
            return badge == product;
        }
    } else if (day == 1 && hour > 16) {
        if (hour == 17 && minute < 43) {
            return badge == 0;
        } else {
            if (combined != 0) {
                return badge == 1;
            } else {
                return badge == product;
            }
        }
    } else {
        return badge == 0;
    }
}

Ich habe diese Lösung mit Hilfe von @MadProgrammer und @Meno Hochschild @ benutz

Methode

public static boolean isBetween(LocalDateTime check, LocalDateTime startTime, LocalDateTime endTime) {
 return ((check.equals(startTime) || check.isAfter(startTime)) && (check.equals(endTime) || check.isBefore(endTime))); }

Verwendung

static LocalDateTime now = LocalDateTime.now();
static LocalDateTime friday = now.with(DayOfWeek.FRIDAY).toLocalDate().atTime(17, 41);
static LocalDateTime sunday = friday.plusDays(2).plusMinutes(1);

if (!isBetween(now, friday, sunday)) { ... }

ochmals vielen Dank für Ihre Bemühunge

Antworten auf die Frage(6)

Ihre Antwort auf die Frage