gelöst Datum Splitten

Mitglied: tsunami

tsunami (Level 1) - Jetzt verbinden

13.04.2020 um 17:26 Uhr, 456 Aufrufe, 4 Kommentare

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
Mitglied: StefanKittel
13.04.2020 um 18:01 Uhr
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
Bitte warten ..
Mitglied: tsunami
14.04.2020 um 10:26 Uhr
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 - Klicke auf das Bild, um es zu vergrößern
Bitte warten ..
Mitglied: MadMax
LÖSUNG 14.04.2020 um 20:44 Uhr
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
Bitte warten ..
Mitglied: tsunami
07.05.2020 um 08:11 Uhr
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
Bitte warten ..
Heiß diskutierte Inhalte
TK-Netze & Geräte
Störung Fax2Mail bei NFON am 24.10.20? Kein Mailversand von NFON möglich?
gelöst StefanKittelFrageTK-Netze & Geräte26 Kommentare

Hallo, scheinbar gibt es eine Störung bei NFONs Fax2Mail am heutigen Tag 24.10.20. Man kann Faxe an schicken und ...

Router & Routing
VPN Performance durch Mikrotik erhöhen
JseidiFrageRouter & Routing17 Kommentare

Hallo zusammen, ich habe Stand heute zwei Standort die ich per Site-to-Site VPN über zwei Fritzboxen verbinde. Da hier ...

Voice over IP
Brother-Fax an Speedport Hybrid funktioniert nicht
gelöst kman123FrageVoice over IP16 Kommentare

Hallo liebes Forum, ich bin neu hier und hätte eine kleine Frage, da ich einfach nicht weiter komme. Sorry ...

Windows 10
RFID oder ähnlich Methode zur Sperrung W10pro bei Abwesenheit - Anmeldung nur über PW wieder ermöglichen
UweGriFrageWindows 1013 Kommentare

Hallo Admins, folgende Lösung wird gesucht: W10pro Anmeldung über Bitlocker Freischaltung und PW bei Anmeldung. Gesucht wird: RFID Chip ...

Windows Userverwaltung
Synology mit Azure Active Directory verbinden
roeggiFrageWindows Userverwaltung13 Kommentare

Ich suche eine Lösung mit der ich ein Synology NAS mit der Active Directory verbinden kann um die Benutzer ...

Ubuntu
Ubuntu 20.10 "Groovy Gorilla" mit GNOME 3.38 und Kernel 5.8 veröffentlicht
FrankInformationUbuntu11 Kommentare

Canonical hat Ubuntu 20.10 veröffentlicht. Die neue Version mit dem Codenamen "Groovy Gorilla" bekommt lediglich 9 Monaten Sicherheitsupdates, kritischen ...

Ähnliche Inhalte
PHP
Datum Rechner
gelöst michi-ffmFragePHP6 Kommentare

Hey Leute, evtl kann mir jemand helfen und mir folgenden Skript erklären und sagen wie ich das Jahr dazubekommen ...

Microsoft

Mit Powershell Datum aus Ordnername als Datum extrahieren

gelöst YotYotFrageMicrosoft11 Kommentare

Moin! ja, ich habe bereits gesucht und auch ein paar Fortschritte gemacht, da ich aber außerhalb von Exchange gerade ...

Windows Userverwaltung

Datum einer Gruppenmitgliedschaft

gelöst slanskyFrageWindows Userverwaltung1 Kommentar

Hallo Leute, Kann man im AD nachvollziehen seit wann jemand Mitglied einer Gruppe ist?

Microsoft Office

Excel Online Datum

gelöst MegaGigaFrageMicrosoft Office10 Kommentare

Hallihallo Ich habe heute morgen mal begonnen Office Online ein wenig genauer anzuschauen. Nun habe ich ein Excel Sheet, ...

Datenbanken

SQL Abfrage letztes Datum

gelöst rolandgggFrageDatenbanken21 Kommentare

Hallo! Kurze Frage an die Profis. Ich habe eine SQL Abfrage die folgende Funktion haben soll ich wähle aus ...

Batch & Shell

Dateien nach Datum verschieben

LKDNDK12FrageBatch & Shell4 Kommentare

Hallo Community, ich habe folgendes Problem: ich muss Dateien mit dem Kriterium Speicherdatum verschieben. Die Ordnerstruktur: H:\Zaehlerdaten\Auslesung1\32.21.54\log\year\ (danach noch ...

Berechtigungs- und IdentitätsmanagementBerechtigungs- und IdentitätsmanagementWebdienste und -serverWebdienste und -serverDatenbankenDatenbankenMonitoring & SupportMonitoring & SupportHybrid CloudHybrid CloudSmall Business ITSmall Business IT