Datumsangaben und -berechnungen in der XML-Datei

Abschlussforum...
Verfügbare Informationen zu "Datumsangaben und -berechnungen in der XML-Datei"

  • Qualität des Beitrags: 0 Sterne
  • Beteiligte Poster: Paul - Erik - alex
  • Forum: Abschlussforum...
  • Forenbeschreibung: Forum zum Nicht-aus-den-Augen-verlieren
  • aus dem Unterforum: Gruppe 2 - Schnittstellen und PM-Software
  • Antworten: 7
  • Forum gestartet am: Mittwoch 11.04.2007
  • Sprache: deutsch
  • Link zum Originaltopic: Datumsangaben und -berechnungen in der XML-Datei
  • Letzte Antwort: vor 15 Jahren, 8 Monaten, 28 Tagen, 11 Stunden, 36 Minuten
  • Alle Beiträge und Antworten zu "Datumsangaben und -berechnungen in der XML-Datei"

    Re: Datumsangaben und -berechnungen in der XML-Datei

    Paul - 28.06.2007, 12:46

    Datumsangaben und -berechnungen in der XML-Datei
    Huhu,

    wir warten mal noch kurz auf Svennis Ergebnisse, ob wir die End-daten von Tasks weglassen können und nur mit Start + Duration arbeiten können...

    Wie gehen wir vor, wenn das nicht perfekt klappt, was ich befürchte?
    Dann schreibe ich einfach in jeden Task Start + Ende rein und eben die Dauer... ich setz mich mal an eine Funktion dafür... mal schauen, ob ich das hinkriege =)



    Re: Datumsangaben und -berechnungen in der XML-Datei

    Erik - 28.06.2007, 16:23


    Gib mir mal noch ein bischen Zeit machs heute noch



    Re: Datumsangaben und -berechnungen in der XML-Datei

    Paul - 28.06.2007, 16:33


    So, in der Klasse Ablaufplan gibt es ab sofort folgende Funktion:

    Code:
    /**
     * Berechnet fuer ein Datum das aus der Dauer resultierende Enddatum
     * Dabei wird beruecksichtigt, dass ein Arbeitstag nur 8h lang geht und eine Mittagspause von 12-1300 hat.
     * Wochenenden und dergleichen werden NICHT berücksichtigt. Das darf Project nachträglich tun.
     *
     * @param startDatum Startdatum im Format 2007-06-28T08:00:00 bzw. YYYY-MM-DDTHH:MM:SS
     * @param dauerVar Dauer in Stunden (zB. "16" für 16h oder "17.5" für 17einhalb Stunden
     * @return String Enddatum im Format 2007-06-28T08:00:00 bzw. YYYY-MM-DDTHH:MM:SS
     * @lastEditFrom pat
     */
    static function calculateDatum($startDatum,$dauerVar) {
       //$startDatum=date("Y-m-d\TH:i:s",mktime(8,00,00,06,01,2007));
       //$dauerVar="24";
       echo "Dauer=".$dauerVar."h --- ";
       $arbeitstage=floor($dauerVar/8);
       $rest=$dauerVar % 8;

       $dauerMinuten=0;
       $dauerStunden=$dauerVar;
       //Wenn die Dauer Nachkommastellen hat, Splitte die in Minuten und Stunden auf
       if(stripos($dauerVar,".") != false) {
          list($dauerStunden,$dauerMinuten)=explode(".",$dauerVar);
          if($dauerMinuten != 0) {
             $dauerMinuten=($rest * 60) +($dauerMinuten / 10)* 60;
          }
       }
       //Rechne die Stunden in Minuten um
       else {
          $dauerMinuten=($rest * 60);
       }
       echo "Arbeitstage: " . $arbeitstage . " und ".$rest." Stunden = ". $dauerMinuten." Restminuten. ---";
       //echo "---DauerStunden = ". $dauerStunden . " und dauerMinuten= " . $dauerMinuten;


       $endDatum=date("Y-m-d\TH:i:s");

       $jahr=substr($startDatum,0,4);
       $monat=substr($startDatum,6,7);
       $tag=substr($startDatum,8,9);
       $stunden=substr($startDatum,11,12);
       $minuten=substr($startDatum,14,15);
       $sekunden=substr($startDatum,17,18);
       //Nachmittagszeit berücksichtigen, wir arbeiten von 13-1700 mit Pause von 12-1300!
       if((0+$stunden+($dauerMinuten/60))> 12) {
          $stunden=$stunden + 1;
       }
       //+ 0 rechen, damit das wirklich Integer werden und wir keine Typwarnungen bekommen
       $endDatum=date("Y-m-d\TH:i:s",mktime(0+$stunden,(0+$minuten) + $dauerMinuten,0+$sekunden,0+$monat,0+$tag+$arbeitstage,0+$jahr));
       echo "Startdatum= " . $startDatum . "\nDauer=" . $dauerVar."\n";
       echo "endDatum= " . $endDatum;
       return $endDatum;
    }


    Die Funktion arbeitet zum Beispiel folgendermaßen:
    1)
    Dauer=24h --- Arbeitstage: 3 und 0 Stunden = 0 Restminuten. ---Startdatum= 2007-06-01T08:00:00 Dauer=24 endDatum= 2007-06-04T08:00:00

    2)
    Dauer=15.5h --- Arbeitstage: 1 und 7 Stunden = 450 Restminuten. ---Startdatum= 2007-06-01T08:00:00 Dauer=15.5 endDatum= 2007-06-02T16:30:00

    3)
    Dauer=4h --- Arbeitstage: 0 und 4 Stunden = 240 Restminuten. ---Startdatum= 2007-06-01T08:00:00 Dauer=4 endDatum= 2007-06-01T12:00:00
    4)
    Dauer=4.1h --- Arbeitstage: 0 und 4 Stunden = 246 Restminuten. ---Startdatum= 2007-06-01T08:00:00 Dauer=4.1 endDatum= 2007-06-01T13:06:00

    5)
    Dauer=4.0h --- Arbeitstage: 0 und 4 Stunden = 240 Restminuten. ---Startdatum= 2007-06-01T08:00:00 Dauer=4.0 endDatum= 2007-06-01T12:00:00

    Wie man sieht, wird das Mittagessen mit berücksichtigt.... ;) und die regulären Arbeitszeiten abgesehen von Wochenenden und so.

    Ganz langsam werde ich mit PHP warm.... ;)



    Re: Datumsangaben und -berechnungen in der XML-Datei

    Erik - 28.06.2007, 20:57


    Hallo Leute. Ich sehe Paul war schon fleißig. Da weiß ich gar nicht ob das was ich jetzt schreibe noch benötigt wird...
    Naja hier meine Ergebnisse:
    Anbei 2 Dateien: alles.xml (standart Projekt mit 2 Vorgängen und minimum.xml, da hab ich alles rausgenommen was nicht unbedingt notwendig ist um start und ende von Tasks noch regeln zu können )
    die Dateien haben auf MS Projekt 2007 die gleiche Wirkung (bitte mal testen!)


    Link zu den Dateien:
    http://rapidshare.com/files/39900238/Zeiten.zip.html



    Was alles raus ist (minimum.xml):

    algemein:Finish Date
    startdate
    Finishdate

    algemin Task (Uid 0:
    start
    finish
    <EarlyStart></EarlyStart>
    <EarlyFinish></EarlyFinish>
    <LateStart></LateStart>
    <LateFinish></LateFinish>


    1. Task (Uid 1:
    Finish
    start
    <EarlyStart></EarlyStart>
    <EarlyFinish></EarlyFinish>
    <LateStart></LateStart>
    <LateFinish></LateFinish>



    2. Task (Uid 2:
    Finish
    start
    <EarlyStart></EarlyStart>
    <EarlyFinish></EarlyFinish>
    <LateStart></LateStart>
    <LateFinish></LateFinish>

    Assignment:

    Finish
    <TimephasedData>

    </TimephasedData>


    alle creation date
    current date


    an der jeweiligen Task duration drehen bringt jetzt was
    an der gesamten task duration (task0) bringt nix


    Assigment raus (nicht unbedingt notwendig)
    Ressources Raus (nicht unbedingt notwendig)

    P.S. Wenne alle Datumsangeben raus sind startet das Projekt am Systemdatum



    Kurzum das Startdatum des 1. Tasks (und somit des gesamtem Projektes kann mit dem StartDate (ganz am Anfang der XML Datei, 10 Zeile) geregelt werden.
    Die Dauer der jeweiligen Tasks wird dann nur über die Duration geregelt der jeweiligen Einzeltasks (UID 1,2,3.... )(Achtung nicht über die Gesamtduration bei Task UID 0 !)
    Die Tasks beginnen dann einfach artig schön direkt hintereinander
    Somit ist Projektende = Ende letzter Task

    wenn ein Task an einem Wochenende startet oder über ein Wochenende geht, regelt MS Projekt das ganz von allein (verschiebt entsprechend).

    Also wird nur benötigt:
    1. startdate (gesamtprojekt)
    2. duration der jeweiligen Task


    alles unklar? :lol:


    @ Paul wir sehen uns ja dann morgen um 12 Uhr wenn noch fragen sind.



    Re: Datumsangaben und -berechnungen in der XML-Datei

    Paul - 28.06.2007, 21:52


    Huhu :)

    Thx für den Input =) Du warst auch fleißig =)

    Kommst du morgen nicht zu ATFM?

    Also brauchen wir uns nur mit den Task-Datumsachen rumplagen... cool =) Im Projekt können wir das Startdatum ja auch eintragen, das dürfte schon OK sein. Nur beim Rest können wir alles rauskanten.. ok =) Die Enddaten-berechnung brauchen wir aber leider intern, damit man die Startdaten der Nachfolger weiß.

    Dann bis morgen :)



    Re: Datumsangaben und -berechnungen in der XML-Datei

    alex - 29.06.2007, 08:22


    Cool - das nimmt uns ja ordentlich arbeit ab. Das was dann eigentlich nur noch fehlt ist die Füllung von "duration_elapsed" (Verstrichene Dauer, bis ein Tast/Ablaufplanpunkt startet)

    Darum kümmere ich mich aber. Allerdings erst ab Sonntag, weil ich vorher noch 2x training (Freitag + Samstag) habe + Prüfung am Sonntag :shock:



    Re: Datumsangaben und -berechnungen in der XML-Datei

    Paul - 29.06.2007, 08:29


    Viel Erfolg dabei... ;-)

    Trifft sich gut, ich habe meine Freundin für Sonntag nach Hause geschickt, so dass ich dass dann sofort nutzen und einbauen kann



    Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken



    Weitere Beiträge aus dem Forum Abschlussforum...



    Ähnliche Beiträge wie "Datumsangaben und -berechnungen in der XML-Datei"

    Frida The Lion Queen. - PFQ (Mittwoch 20.10.2010)
    Datei respektiv link Upload - nico (Sonntag 06.03.2005)
    Was ist diese Datei "optimize" ??? - FlorianSchröder (Donnerstag 29.04.2004)
    Neuer Virus kommt durch BMP-Datei - RaymannStyleZ (Donnerstag 13.05.2004)
    AVI-Datei umwandeln in V-CD bzw. S-VCD - Dutch (Dienstag 01.02.2005)
    XML auf der website - Gimnir (Sonntag 20.06.2004)
    DIE XML-DATEIEN - Zitter (Freitag 18.02.2005)
    Save-Datei - zwerg20-07 (Sonntag 05.08.2007)
    ISO Datei erstellen - Joggl (Montag 23.07.2007)
    Befehl zum löschen einer Datei - Bratwurst (Dienstag 14.08.2007)