Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Tipps & Tricks ›

[gelöst] Datumsbereich ohne Wochenenden mit Computed Field

Eingetragen von Renardo (60)
am 04.01.2014 - 15:28 Uhr in
  • Tipps & Tricks
  • Drupal 7.x

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

‹ Modul zum Sichern des files-Verzeichnisses via ftp [gelöst] Datumsbereich ohne Wochenenden mit Computed Field ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Keine Drupal Frage

Eingetragen von md (3717)
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.

  • Wieviel Tage hat der Monat, in dem der Urlaub beginnt?
  • Wieviele Feiertage fallen in die Zeit des Urlaubs?
  • Liegt ein Feiertag an einem Wochenende?

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

  • Anmelden oder Registrieren um Kommentare zu schreiben

Datumsbereich ohne Wochenenden mit Computed Field

Eingetragen von Renardo (60)
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

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe die Frage nicht

Eingetragen von md (3717)
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

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja vielleicht

Eingetragen von Renardo (60)
am 04.01.2014 - 19:43 Uhr

hilft mir ein anderer aus dem Forum hier oder hat zumindest eine konkrete Anfangsidee.

Renardo

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallovielleicht hift das

Eingetragen von oteno (775)
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

  • Anmelden oder Registrieren um Kommentare zu schreiben

Datumsbereich ohne Wochenenden [gelöst]

Eingetragen von Renardo (60)
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

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Modulupdate per Webinterace scheitert an authorize.php und access denied für Admin-User
  • content und media-files von drupal8 nach drupal9 migrieren
  • Notificationsnicht immer und gesammelt bei Update
  • Meldung zu Token im Statusbericht
  • Fehlermeldung: Deprecated function
  • Warning: call_user_func() expects parameter 1 to be a valid callback, class 'Drupal\node\Entity\Node' does not have a method 'ge
  • Versenden von Anfragen per Webform
  • Goodbye Online Drupal Meetup Germany - Hello Drupal DACH Online Meetup!
  • Übersetzte Felder bei Inhaltstyp automatisch übernehmen
  • Content Ex-/Import
  • RESTful Path request will nicht
  • Wer ist online Block
Weiter

Neue Kommentare

  • Problemeingrenzung
    vor 2 Minuten 48 Sekunden
  • Ich habe es bei einigen
    vor 1 Tag 1 Stunde
  • Self-referencing
    vor 2 Tagen 16 Stunden
  • settings.php
    vor 2 Tagen 16 Stunden
  • Kulturmensch schrieb Prima
    vor 2 Tagen 17 Stunden
  • Metatag
    vor 2 Tagen 17 Stunden
  • Links
    vor 2 Tagen 17 Stunden
  • Wenn Du nach der
    vor 2 Tagen 19 Stunden
  • Gut zu wissen. Demnächst
    vor 3 Tagen 11 Stunden
  • Token Fehler behoben
    vor 3 Tagen 11 Stunden

Statistik

Beiträge im Forum: 245978
Registrierte User: 18831

Neue User:

  • finnster
  • Damian1802
  • MrWebMV

» Alle User anzeigen

User nach Punkten sortiert:
wla9010
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3916
ronald3829
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 1 Benutzer und 6 Gäste online.

Benutzer online

  • McAldo

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association