[gelöst] Datumsbereich ohne Wochenenden mit Computed Field
Eingetragen von Renardo (60)
am 04.01.2014 - 15:28 Uhr in
am 04.01.2014 - 15:28 Uhr in
Hallo,
ich errechne die Anzahl von Urlaubstagen mit Hilfe des Moduls Computed Field und folgendem Code. Das Problem dabei ist, dass hier auch die Wochenenden mitgerechnet werden:
$start_value_url = $entity->field_erst_tag_url[LANGUAGE_NONE][0]['value'];
$end_value_url = $entity->field_letzter_tag_url[LANGUAGE_NONE][0]['value2'];
$timezone = $entity->field_erst_tag_url[LANGUAGE_NONE][0]['timezone'];
$start_date = new DateObject($start_value_url, $timezone);
$end_date = new DateObject($end_value_url, $timezone);
$duration = $start_date->difference($end_date, 'days');
$entity_field[0]['value'] = $duration+1;
Weiß jemand, wie ich das Ergebnis um die enthaltenen Wochenendtage kürzen kann?
Danke
Renardo
- Anmelden oder Registrieren um Kommentare zu schreiben
Keine Drupal Frage
am 04.01.2014 - 18:16 Uhr
Das ist ja keine spezielle Drupal Frage.
Du brauchst einen Algorithmus der dieses Problem löst.
Und der Algorithmus muss mehr als Wochenenden berücksichtigen - z.B.
Das sind wahrscheinlich nur einige Kriterien, die berücksichtigt werden müssten, um das Problem zu lösen.
Wenn man den Algorithmus hat, lässt sich das auch mit Drupal umsetzen.
vg
md - DrupalCenter.de
mdwp* Drupal Consulting & Services
Datumsbereich ohne Wochenenden mit Computed Field
am 04.01.2014 - 18:52 Uhr
Warum soll das keine spezielle "Drupal-Frage" sein?
Ich realisiere mit Drupal 7 eine Urlaubsverwaltung und benutze hierfür u.a. das Modul Computed Field. Das funktioniert auch soweit ganz gut. Nur weiß ich nicht, wie ich den o.g. Code ändern muss, um die Wochenenden herauszurechnen.
Solche Fragen -auch zu dem erwähnten Modul- gab es hier schon öfters. Daher mein Anliegen bitte nicht einfach so abtun.
Danke
Renardo
Ich habe die Frage nicht
am 04.01.2014 - 19:23 Uhr
Ich habe die Frage nicht einfach so abgetan.
Ich habe darauf hingewiesen, dass es sich um ein komplexes Problem handelt, zu dessen Lösung ein Algorithmus benötigt wird.
Ein Algorithmus jedoch ist System- und Programmiersprachen unabhängig.
Einige Kriterien, die zu beachten sind, habe ich genannt. Die Lösung kann ich dir hier leider nicht liefern.
Vielleicht ein anderer Programmierer.
vg
md - DrupalCenter.de
mdwp* Drupal Consulting & Services
Ja vielleicht
am 04.01.2014 - 19:43 Uhr
hilft mir ein anderer aus dem Forum hier oder hat zumindest eine konkrete Anfangsidee.
Renardo
Hallovielleicht hift das
am 04.01.2014 - 20:38 Uhr
Hallo
vielleicht hilft das hier weiter:
http://stackoverflow.com/questions/336127/calculate-business-days
Gruß
Christian
Don't code today what you can't debug tomorrow
Ariya Hidayat
Datumsbereich ohne Wochenenden [gelöst]
am 11.01.2014 - 18:14 Uhr
Ich habe die Lösung nun selbst hinbekommen. Die Anzahl von Urlaubstagen zwischen einem ersten und einem letzten Tag berechne ich so:
$start_value_url = $entity->field_erster_tag_url[LANGUAGE_NONE][0]['value'];
$end_value_url = $entity->field_letzter_tag_url[LANGUAGE_NONE][0]['value2'];
$start = strtotime( $start_value_url);
$end = strtotime($end_value_url);
$count = 0;
while(date('Y-m-d', $start) < date('Y-m-d', $end)){
$count += date('N', $start) < 6 ? 1 : 0;
$start = strtotime("+1 day", $start);
}
$entity_field[0]['value'] = $count+1;
Vielleicht hat ja jemand Lust, den Code für das "Computed Field" so zu erweitern, dass sich die deutschen Feiertage herausrechen lassen.
Renardo