public int getShift(GregorianDate date) {

        int year = date.getYear();

        // Schaltsekundenereignisse gibt es erst seit Juni 1972
        if (year >= 1972) {

            ExtendedLSE[] events = this.getEventsInDescendingOrder();

            for (int i = 0; i < events.length; i++) {
                ExtendedLSE event = events[i];
                GregorianDate lsDate = event.getDate();

                // Ist es der Umstellungstag?
                if (
                    (year == lsDate.getYear())
                    && (date.getMonth() == lsDate.getMonth())
                    && (date.getDayOfMonth() == lsDate.getDayOfMonth())
                ) {
                    return event.getShift();
                }
            }
        }

        return 0;

    }
public int getShift ( GregorianDate date ) { int year = date . getYear ( ) ; if ( year >= 1972 ) { ExtendedLSE [ ] events = this . getEventsInDescendingOrder ( ) ; for ( int i = 0 ; i < events . length ; i ++ ) { ExtendedLSE event = events [ i ] ; GregorianDate lsDate = event . getDate ( ) ; if ( ( year == lsDate . getYear ( ) ) && ( date . getMonth ( ) == lsDate . getMonth ( ) ) && ( date . getDayOfMonth ( ) == lsDate . getDayOfMonth ( ) ) ) { return event . getShift ( ) ; } } } return 0 ; }
/*[deutsch]
<p>Ermittelt die Verschiebung in Sekunden passend zur letzten Minute
des angegebenen Datums. </p>

<p>Das Ergebnis der Methode kann zum Sekundenwert {@code 59} addiert
werden, um das Maximum des Elements SECOND_OF_MINUTE im angegebenen
Zeitkontext zu erhalten. Das Verhalten der Methode ist undefiniert,
wenn die angegebenen Bereichsgrenzen der Argumentwerte nicht beachtet
werden. </p>

@param   date    day of possible leap second event in the last minute
@return  shift of second element (most of the times just {@code 0})