private void markDateInvocation ( ) { _updatePreviousDates = ! _dateGivenInGroup ; _dateGivenInGroup = true ; _dateGroup . setDateInferred ( false ) ; if ( _firstDateInvocationInGroup ) { // if a time has been given within the current date group, // we capture the current time before resetting the calendar if ( _timeGivenInGroup ) { int hours = _calendar . get ( Calendar . HOUR_OF_DAY ) ; int minutes = _calendar . get ( Calendar . MINUTE ) ; int seconds = _calendar . get ( Calendar . SECOND ) ; resetCalendar ( ) ; _calendar . set ( Calendar . HOUR_OF_DAY , hours ) ; _calendar . set ( Calendar . MINUTE , minutes ) ; _calendar . set ( Calendar . SECOND , seconds ) ; } else { resetCalendar ( ) ; } _firstDateInvocationInGroup = false ; } }
ensures that the first invocation of a date seeking rule is captured