Dann mal ein konkretes Beispiel:
// Zeiten auf Überschneidung prüfen
Calendar aStart = Calendar.getInstance() ;
aStart.setTime( a.getStartDateTime() ) ;
Calendar aEnd = Calendar.getInstance() ;
aEnd.setTime( a.getEndDateTime() ) ;
Calendar bStart = Calendar.getInstance() ;
bStart.setTime( b.getStartDateTime() ) ;
Calendar bEnd = Calendar.getInstance() ;
bEnd.setTime( b.getEndDateTime() ) ;
if( isAllDayEvent == false ) {
aStart.add( Calendar.MINUTE, 1 ) ; // *
aEnd.add( Calendar.MINUTE, -1 ) ;
bStart.add( Calendar.MINUTE, 1 ) ; // *
bEnd.add( Calendar.MINUTE, -1 ) ;
}
if( bStart.after( aStart ) && bStart.before( aEnd ) ) {
isConflict = true ;
}
if( bEnd.after( aStart ) && bEnd.before( aEnd) ) {
isConflict = true ;
}
if( bStart.before( aStart ) && bEnd.after( aEnd ) ) {
isConflict = true ;
}
if( aStart.equals( bStart ) || aStart.equals( bEnd ) || aEnd.equals( bStart ) || aEnd.equals( bEnd ) ) {
isConflict = true ;
}
In einer Methode zur Prüfung, ob es zwischen zwei Buchungen Überschneidungen gibt, habe ich die mit // * gekennzeichneten Zeilen gerade geändert. Also keine große Änderung an Strukturen oder Signaturen.
Natürlich hätte ich gern ein Zeitfenster für Updates, zu dem ich den Http-Task herunterfahren würde. Habe ich aber nicht bzw. müsse ich dann seeehr früh aufstehen. Oder ich muss mir einen anderen Mechanismus überlegen, der dass dann z.B. via Agent zu einer weniger frequentierten Zeit macht.
Gruß
Hubert