Sekunden bis zum Ende der aktuellen Kalenderwoche ermitteln!

Genslus

Mitglied
Hallo, ich stehe gerade ziemlich auf den Schlauch.
Ich versuche das Ende der aktuellen Kalenderwoche zu ermitteln bzw. die verbleibende Zeit (in Sekunden) bis zum Ende dieser.

Ich habe die aktuellen Kalenderwoche mittels
Java:
int week = now.get(Calendar.WEEK_OF_YEAR);

Als ersten/letzten Tag der Woche habe ich Montag/Sonntag:
Java:
        int firstDayOfWeek = Calendar.MONDAY;
        int lastDayOfWeek = Calendar.SUNDAY;

Nun möchte ich daraus (aus dem aktuellen Datum) die Zeit bis zum Ende der Kalenderwoche (Sonntag 23:59:59) ermitteln.

Wie kann ich das am einfachsten umsetzen?
 
zb so...

Java:
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class Test {

   public static void main(final String[] args) {
      Calendar jetzt = new GregorianCalendar();
      jetzt.setTime(new Date());

      Calendar endeDerWoche = new GregorianCalendar();
      endeDerWoche.setTime(new Date());
      int tageBisSonntag = 8-jetzt.get(Calendar.DAY_OF_WEEK); //sonntag ist 1, montag 2 ... naja..
      endeDerWoche.add(Calendar.DATE, tageBisSonntag);
      endeDerWoche.set(Calendar.HOUR, 23);
      endeDerWoche.set(Calendar.MINUTE, 59);
      endeDerWoche.set(Calendar.SECOND, 59);

      
      System.out.println("Sekundne bis zum Ende der Woche: "+(endeDerWoche.getTime().getTime()-jetzt.getTime().getTime())/1000);

      
   }

}
ich weiß nicht ob stimmt.. führ am sontag kurz für mitternacht nochmal aus...
 
Habe es jetzt so gelöst:

Java:
        Calendar now = Calendar.getInstance();
        Calendar end = Calendar.getInstance();
        int lastDayOfWeek = Calendar.SUNDAY;        
        end.set(Calendar.DAY_OF_WEEK, lastDayOfWeek);
        end.set(Calendar.MILLISECOND, 0);
        end.set(end.get(Calendar.YEAR), end.get(Calendar.MONTH), end.get(Calendar.DATE) + 1, 0, 0, -1);
        end.set(Calendar.MILLISECOND, 99);
        long remaining = (end.getTimeInMillis() - now.getTimeInMillis()) / 1000 ;

Sollte funktionieren.

Danke für die Antworten!
 

Zurück
Oben