Verfügbare Informationen zu "Datumsangaben und -berechnungen in der XML-Datei"
Qualität des Beitrags: 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:46Datumsangaben 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)
