Datum Splitten

Hallo Forum,
erstmal frohe Ostern.
Ich bin am basteln und brauche einen Ansatz:

Ich möchte das Array splitten. Und zwar:
Wenn ein Zeitblock zB Pause innerhalb eines anderen Zeitblocks liegt, möchte ich den großen aufsplitten.
Bsp:
Ist
Zeitblock 1: 08:00 - 16:00
Zeitblock 2: 9:30-9:45

Soll:
Zeitblock 1: 08:00 -09:30
Zeitblock 2: 09:30 -09:45
Zeitblock 3: 09:45-16:00
// Pause um 9:30 15 Minuten und 12:30 30 Minuten
=>


Die Idee ist, das ganze in ein arry zu packen, zu durchlaufen und dann zu vergleichen und mittels if (start<ende) der vorangegangenen Schleife zu splitten. Aber das ist doch murks? Oder kann man via mysql da irgendwie rechnen? Was weiß ich das Ganze in Viertelstunden zerlegen, dann sortieren und dann umformatieren...
irgendeine Idee?
mfg
tsunami

Content-Key: 564744

Url: https://administrator.de/contentid/564744

Ausgedruckt am: 20.01.2022 um 10:01 Uhr

Mitglied: StefanKittel
StefanKittel 13.04.2020 um 18:01:16 Uhr
Goto Top
Hallo,

was mit dazu durch den Kopf geht.
1. Datenbank weil man da schön suchen kann

2. Ist das mit dem Endzeitpunkt bei jedem Block sinnvoll?
Du fängst an zu arbeiten und machst Dir einen Eintrag.
Wann der Eintrag endet weißt Du ja erst wenn er wirklich zu Ende ist.
Davor kommen ja die Pausen (oder telefonate mit anderen Kunden).

3. Gibt es sowas nicht schon fertig?

Ich notiere mit meist nur die Anfangs- und Endzeit.
Die Anfahrt wird pauschal berechnet anhand der Zeit und Kilometer laut Googlemaps.

Am Ende des Tages trage ich in mein System die Anfangs- und Endzeit sowie einen Abzug in Minuten.


Zurück zu Deiner Frage.
Arbeit 13.04.20 10:00 - 16:00, Abzug 0 -> 60 Minuten
Pause 13.04.20 11:30 - 11:45, Dauer 15 Minuten
Pause 13:04.20 14:00 - 14:45, Dauer 45 Minuten
Suche nach Einträgen die vor 16:00 begonnen haben oder nach 10:00 geendet haben und ziehe diese davon ab.
Eigentlich müßte Anfangs und Endzeit beide innerhalb der Arbeitszeit sein.

Von diesen Einträgen nimmtst Du die Zeit und trägst sie in das Feld Abzug der Arbeitszeit ein

Viel Spass

Stefan
Mitglied: tsunami
tsunami 14.04.2020 um 10:26:05 Uhr
Goto Top
Guten Morgen,
erstmal vielen Dank für Deine superschnelle Antwort.
Zu 1 Ja. Datenbank steht dahinter.
Zu 2. Ich denke ja, das Ziel ist nachher sowas wie eine Effektivitätsübersicht. Also eine Art Monatsübersicht wo ich die Tätigkeitsblöcke als farbige divs darstelle. Die Positionen kann ich nicht fix machen, da ich die Uhrzeit-Spalte dynamisch nach Min und Max halten will. Also früheester Arbeitsbeginn und spätester Feierabend. Nun gibt man die Zeite ein. Normalerweise könnte man die Divs einfach übereinander legen. Das geht aber nur wenn das Parent absolute positioniert wird. Und das würde mich die Flexibilität kosten.
Daher die Idee, dass man die Eingaben so umbiegt, dass man immer einzelne Blöcke hat. Der User gib halt ein:
- Anfahrt 07:30- 07:45
- Kunde 07:45-16:00
- Pause 12:30-13:00
usw.

Die EIngaben empfange ic und mache draus ein mehrdimensionales Array. Das Array "Kunde" müste ich dann ändern:
- Kunde 07:45-12:30 Also das ende mit dem Startzeitppunkt der Pause ersetzen. Dann einen EIntrag hinzufügen:
- Kunde 13:00-16:00
Das ganze dann in die Datenbank. Die kann ich dann mit order by startzeit auslesen und habe meien Übersicht.

Zu 3: Mag sein, dass es das schon gibt. Aber erstens möchte ich noch ein bisschen lernen und 2. muss ich mich irgndwie in Corona Zeiten beschäftigen.
Die EInfachen Zahl-Statistiken komen unten drunter oder uU auch drüber, so dass ich sehen kann:
Monat Feb 20:
Meier: 8 h im Büro
12 h Fahrzeit
10h Pause
154 h Kunde
3 h Urlaub
usw
beispiel
Mitglied: MadMax
Lösung MadMax 14.04.2020 um 20:44:20 Uhr
Goto Top
Hallo tsunami,

sammel Deine Start- und Endzeiten in eine Spalte, nur die verschiedenen. Dazu noch einen Autowert, dann kannst Du sie ganz einfach in die Blöcke aufteilen.

Von MySQL habe ich nicht so die Ahnung, in MS SQL würde das etwa so aussehen:

Das "union" sorgt dafür, daß nur die unterschiedlichen Zeiten gelesen werden, hat also quasi ein "distinct" mit eingebaut.
Ergebnis wäre eine Tabelle:

Die Blöcke bekommst Du dann mit:

Wie gesagt, ist nicht MySQL, aber als Anregung für das Vorgehen hoffentlich zu gebrauchen.

Gruß, Mad Max
Mitglied: tsunami
tsunami 07.05.2020 um 08:11:25 Uhr
Goto Top
Hi,
konnte es nun lösen.
Order by datum und datum like "2019-02%"...
Dann einfach untereinander und passt. Einzige Ausnahme, die ich noch umsetzen möchte:
Notdienst-Einsatz. Also Feierabend um 17:00 und um 21 Uhr muss einer raus wegen Rohrbruch.
Dan muss ich die Differenz zwischen letzter Zeit und neuer Zeit nehmen. Die ist bei noramlen Tagen immer 0.
08:00 - 08:15 Anfahrt
08:15 - 09:00 Kunde 08:15 - 08:15 = 0
09:00-09:15 Pause usw 09:99-09:00 = 0
21:00 - 21:15 Anfahrt -> 21:00 - 17:00
Heiß diskutierte Beiträge
question
Windows XP: IE 8 zeigt keine Seiten mehr an :-) gelöst altmetallerVor 1 TagFrageWindows XP21 Kommentare

Huhu, ich habe hier tatsächlich noch einen Dell Dimension 9100 (Pentium IV, 3Ghz) stehen, den ich mit einer NVIDIA Quadro FX 540 und 4GB RAM ...

question
Datensicherung nach Geschäftsaufgabefboy33Vor 1 TagFrageBackup8 Kommentare

Guten Tag liebe (ex) Kollegen, nun nach 50 Jahren EDV, habe ich meine Firma abgemeldet und bin in den Ruhestand gegangen. Mein Problem, was mache ...

question
Ethernet über Telefonleitung gelöst Net-ZwerKVor 1 TagFrageLAN, WAN, Wireless8 Kommentare

Moin! Ich suche einen Konverter, mit dem ich auf eine Telefonleitung (2 Draht) ein Netzwerksignal legen kann. Geht darum, dass ich beim einem Kunden einen ...

question
PLEX bricht im HEIMNETZ nach 1 Minute Film abStrahlemann-69Vor 1 TagFrageUbuntu9 Kommentare

Hallo an alle, ich hab mir den Plexserver auf Proxmox installiert und mein NAS eingebunden. Er ließt auch alles ein und funktioniert. Nun laß ich, ...

question
O365 Outlook + Teams sperren gelöst sraL91Vor 20 StundenFrageMicrosoft Office16 Kommentare

Hallo Zusammen, wir haben in unserer Firma Office 365 ausgerollt und ich stehe nun vor folgendem Problem. Unsere Firma sind in 50 Standorte unterteilt und ...

question
MFA mit Microsoft?cseVor 17 StundenFrageWindows Userverwaltung5 Kommentare

Hi Leute, ich hoffe ihr könnt mir ein wenig helfen. Von unserer Gruppe (central IT im Ausland) verlange ich (im Zuge TISAX Audit) auf unseren ...

question
Image auf zweiten Laptop kopierenmario28Vor 1 TagFrageWindows Installation5 Kommentare

Hallo zusammen, ich habe mir für daheim zwei Mal den gleichen Laptop bestellt (Schenker Via 15 Pro M20) und nach Erhalten mit dem ersten begonnen, ...

question
PC - Komplettsicherunggreenhorn1Vor 21 StundenFrageBackup10 Kommentare

Hallo, welche Möglichkeit gibt es an Sicherungen, wo man das gesamte System Win10 sichern kann? Sodass ich mit einer Sicherung einen neuen PC 1 zu ...