myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

Berechnung fortlaufender, abwechselnder Dienst-Tagen

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 12.11.12, 09:02   #1
pro-logic
Anfänger
 
Registriert seit: Nov 2009
Beiträge: 39
Bedankt: 8
pro-logic ist noch neu hier! | 0 Respekt Punkte
Standard Berechnung fortlaufender, abwechselnder Dienst-Tagen

Servus zusammen!

Ich stehe grade voll auf dem Schlauch und hänge an folgenden (vielleicht banalen) Problem:

Suche einen Algorithmus, der mir bei Eingabe eines Datums berechnet wer im 24Std. Dienstplanmodell (1. oder 2. Wachabteilung). Der wechsel findet alle 24 Stunden statt.

Beispiel: Am 01.01.2012 hatte die 2. Wachabteilung Dienst, am 02.01. die 1.WA, am 03.01. wieder die 2.WA und so weiter bis in alle Ewigkeit, unabhängig von Wochenenden, Feiertagen, Jahreswechsel, etc.

Welche WA hat am 25.12.2012 Dienst?

Wie kann man das sinnvoll berechnen? Oder bleibt nur eine Schleife die am o.g. Startdatum beginnt, bis zum Eingabedatum läuft und jeden Tag wechselt?

Vielen Dank schonmal!

MfG
pL
pro-logic ist offline   Mit Zitat antworten
Ungelesen 12.11.12, 09:25   #2
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

Du brauchst ja die Tage zwischen den beiden Daten.

Als erstes würde ich die vollen Jahre berechnen, die dazwischen liegen, die dann mit 365 multiplizieren.
Danach muss man noch überprüfen, wieviele Schaltahre dazwischen liegen (Achtung: es ist nicht alle 4 Jahre ein Schaltjahr).
Dann die Monate dazwischen berechnen und entsprechend die Anzahl der Tage dazuaddieren.
Nun einfach noch die verbleibenden Tage bis zum Monatsende von Datum A und die verstrichenden Tage am Anfang des Monats b.
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 12.11.12, 19:18   #3
ProgMaster
Banned
 
Registriert seit: Mar 2012
Beiträge: 337
Bedankt: 93
ProgMaster ist noch neu hier! | 0 Respekt Punkte
Standard

Verwendest du eine programmiersprache oder machst du das auf papier??????!
ProgMaster ist offline   Mit Zitat antworten
Ungelesen 13.11.12, 15:29   #4
pro-logic
Anfänger
 
Registriert seit: Nov 2009
Beiträge: 39
Bedankt: 8
pro-logic ist noch neu hier! | 0 Respekt Punkte
Standard

Für alle:

habe diese Lösung gefunden:

PHP-Code:
        $datetime1 = new DateTime('2012-01-01');
        
$datetime2 = new DateTime('2012-07-10');
        
$interval $datetime1->diff($datetime2);
        
$tage $interval->format('%a');
        
        
//diese Abfrage stimmt dann, wenn am Datum $datetime1 die 2. WA Dienst hatte.
        
if ($tage == 0) {
            echo 
" 2. WA";
        }
        else {
            echo 
" 1. WA";
        } 
Danke für die Tipps!


@ProgMaster: Ich wollte das in php umsetzen (siehe oben). Allerdings braucht man um einen Algorithmus zu entwicklen nicht unbedingt eine Sprache (Stichwort: [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ])


MfG
pL
pro-logic ist offline   Mit Zitat antworten
Ungelesen 13.11.12, 18:19   #5
ProgMaster
Banned
 
Registriert seit: Mar 2012
Beiträge: 337
Bedankt: 93
ProgMaster ist noch neu hier! | 0 Respekt Punkte
Standard

Wie du an deiner Lösung siehst, ist Pseudocode hier eben genauso unnötig wie ein Algorithmus!

Nur schlechte Programmierer versuchen das "Rad neu zu erfinden". Und für so eine rudimentäre Sache kann man davon ausgehen, dass es in jeder Programmiersprache eine Implementierung gibt.
ProgMaster ist offline   Mit Zitat antworten
Ungelesen 14.11.12, 09:54   #6
pro-logic
Anfänger
 
Registriert seit: Nov 2009
Beiträge: 39
Bedankt: 8
pro-logic ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von pro-logic Beitrag anzeigen
Ich stehe grade voll auf dem Schlauch und hänge an folgende, (vielleicht banalen) Problem:
- Denkblockaden können jeden treffen.
- mit Pseudocode veranschaulicht man Paradigmen unabhängig von der verwendeten Sprache
-> Auch "einfache" Probleme bzw. Lösungen können so dargestellt werden
- keiner wollte das Rad neu erfinden - ich war auf der Suche nach einem Denkanstoß
- nicht jede Lösung passt zu einem konkreten Problem
- über jemanden zu urteilen ohne sie/ihn zu kennen ist anmaßend
- es war nicht meine Absicht dich persönlich anzugreifen, sondern meine Erwartungen zu konkretisieren


MfG
pL
pro-logic ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:08 Uhr.


Sitemap

().