Announcement

Collapse
No announcement yet.

Tage zwischen zwei Datumsdaten zählen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Tage zwischen zwei Datumsdaten zählen

    Liebe Gemeinde,

    seit 2-3 Tagen bekomme ich es nicht hin, die Tage zwischen 2 Datumsdaten, ohne Sa. und So., zu zählen. Ich möchte quasi die Nettoarbeitstage zählen, aber meine WHILE-Schleife verzählt sich ständig, da z. B. SATURDAY und SUNDAY nicht immer als solche erkannt werden. Bin schon leicht verzweifelt

    Code:
    Calendar startCal = Calendar.getInstance();
    Calendar endCal = Calendar.getInstance();
    startCal.set(startY, startM, startD);
    endCal.set(endY, endM, endD);
    			
    if (!(startCal.after(endCal))) // Enddatum >= Startdatum?
    {
    	int netHolidays = 0;
    								
    	while (!(startCal.after(endCal)))
    	{
    		if (startCal.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY)
    		{
    		        if (startCal.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY)
    			{
    				++netHolidays;
    			}
    		}
    		startCal.add(Calendar.DATE, 1);
    }
    So gebe ich z. B. als Start- und Enddatum jew. einen Tag ein, der auf einen Sa. oder So. fällt, so wird trotzdem der Zähler "netHolidays" inkrementiert, da anscheinend Sa. oder So. nicht erkannt wird. Gebe ich ein Intervall über mehrere Tage an, so verzählt er sich auch um 1 Tag (zuviel).

    Hat jemand eine Idee?
    Viele Grüße
    André

  • #2
    Problem gelöst: das "falsche" Zählen lag daran, dass ich mich andauernd im Monat irrte, da Januar = 0 ist. D. h. ich zählte händisch immer in einem anderen Monat als der Calendar
    Viele Grüße
    André

    Comment


    • #3
      Ja, der Calendar ist ein klein bisschen "unintuitiv", musste ich jetzt auch feststellen.

      Comment


      • #4
        Als Ersatz gibt es Joda Time

        http://joda-time.sourceforge.net/index.html

        Mittlerweile gibt es sogar einen JSR dafür um es in die Standardklassen zu "übernehmen"

        http://jcp.org/en/jsr/detail?id=310

        Ihr seid also nicht die einzigen die mit dem jetzigen Calendar ein Problem haben

        Comment


        • #5
          k. :-D Beruhigt mich ja doch, dass ich nicht der einzige bin, der mit dem Calendar immer wieder kämpft. Sollt ich beim nächsten Projekt mit einbinden, das jetzige mit Calendar-Problemen ist gelöst und das Projekt beinahe fertig. :-)
          Zuletzt editiert von Mel_one; 17.10.2007, 19:07.

          Comment


          • #6
            Moin!

            Fast einzig sichere Methode ist die Verwendung des Julianischen Kalenders.

            Ich musste mich schon 2001 mal damit beschäftigen. Hier mal einen Link:

            http://groups.google.de/group/de.com...d48ab470402aa3

            Beste Grüße,
            Josch.

            Comment

            Working...
            X