PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Entwicklung und Softwaredesign (http://www.selfphp.de/forum/forumdisplay.php?f=14)
-   -   Auftragsarbeit Stempeluhrauswertung (http://www.selfphp.de/forum/showthread.php?t=12073)

Crooklyn 03.01.2006 21:01:03

Auftragsarbeit Stempeluhrauswertung
 
Hallo erst mal.
Ich hätte da ein Problem mit der Verarbeitung und anschließenden Berechnung von Zahlen.

Gleich vorneweg: meinen PHP skill schätze ich auf ca. 30% gegenüber eines Profis also bei eventuellen hilfestellungen bitte darauf rücksicht nehmen ;)

Wie das Topic schon sagt sitze ich an einer Auftragsarbeit für meinen Betrieb ein Programm zu entwickeln welches automatisch die Geleistete arbeitszeit ermittelt und gleichzeitig die Überstunden errechnet. Sprich wenn man von 9-20 Uhr gearbeitet hat hat man: 2 Stunden und 15 Minuten ÜBERSTUNDEN.
das soll das Programm einmal FÜR JEDEN MONAT und auch detailiert für jeden tag ausgeben.

Die Zeit wird per Formular eingegeben!

Bis zu diesem Moment handle ich es so das Die Uhrzeiten als ganzes gespeichert werden. ALSO "06:43". Wie kann ich jetzt daraus einzelne zahlen machen und sagen. das die 06 mal 60 genommen wird damit ich diese als minuten habe und DANN noch zu den 43 hinzu addiere um anschließend bei Zahlen ÜBER 60 Minuten wieder stunden zu erstellen SPRICH : 75 Minuten = 01:15

So ich werde nun zum einen euch Screenshots der GUI und der Mysql Tabellen geben. Zum anderen in diesem Thread die Quellcodes WIE weit ich bereits bin.

Ganz kurz bevor ich mit dem Anhang beginne:
WENN mir jemand helfen kann WÄR ich sehr glücklich. Ich habe zwar das Große Markt und Technik "PHP5 & MYSQL5" aber das hilft mir in dieser Situation auch nicht weiter.

MFG Crooklyn Alias Björn S.
Brandenburg / Havel

ANHÄNGE
======================================
ANZEIGE Des AKTUELLEN MONATS
Bitte nicht wundern ich hab hier ein wenig getrickst und die tabelle 50:50 in php und mysql^^
Code:

function show_act()
{
global $uid;
$mon = date("n");
echo '<table width="60%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#999999" bgcolor="#CCCCCC">  <tr>
    <td>&nbsp;</td>
    <td width="60%"><div align="center"><font face="Arial, Helvetica, sans-serif">Aktueller
        Monat</font></div></td>
    <td>&nbsp;</td>
  </tr>';
$abfrage2 = mysql_query("SELECT tag, monat, g_k, g_g, p1_k, p1_g, p2_k, p2_g, uid FROM day WHERE uid = '$uid' AND monat = '$mon'");
while($act = mysql_fetch_array($abfrage2))
{
?>
  <tr>
    <td width="20%"><font size="2" face="Arial, Helvetica, sans-serif">Tag: <?php echo $act['tag']; ?></font></td>
    <td width="60%"><font size="2" face="Arial, Helvetica, sans-serif">Gesamt: <?php echo $act['g_k'] . ' - ' . $act['g_g']; ?><br>
      Pause1: <?php echo $act['p1_k'] . ' - ' . $act['p1_g']; ?><br>
      Pause2: <?php echo $act['p2_k'] . ' - ' . $act['p2_g']; ?><br>
      </font></td>
    <td width="20%"><font size="2" face="Arial, Helvetica, sans-serif">&nbsp;</font></td>
  </tr>

<?php
}
echo '</table>';
}

===============================
http://img137.imagevenue.com/img.php...9d_add_day.jpg
http://img142.imagevenue.com/img.php...9_add_day2.jpg
http://img136.imagevenue.com/img.php...0_add_day3.jpg

langwebdesign 04.01.2006 17:05:25

AW: Auftragsarbeit Stempeluhrauswertung
 
Hallo Crooklyn,

rein interresse halber, wie groß is deine Firma, oder die für die du das machst?
und wie werden die Stunden erfasst?

mfg Stephan

Crooklyn 04.01.2006 19:47:22

AW: Auftragsarbeit Stempeluhrauswertung
 
Die Firma umfasst ca. 100 Mitarbeiter.
Jetz kommt der Witz an der Sache:

Die Zeit wird mittels einer (wortwörtlich nehmen!!!) Stempeluhr erfasst.
Sprich Zettel mit Mitarbeitername rein - Knopf drücken - RAATSCH - Datum und uhrzeit rauf gestempelt :D - Mittelalterlich ich weiß^^

langwebdesign 04.01.2006 20:01:50

AW: Auftragsarbeit Stempeluhrauswertung
 
Versteh ich des richtig, irgendwer hackt dann des ganze in die MYSQL nei???

is des ned ziemlich fürn arsch die methode?

sorry aber da gibts bessere Lösungen.

Bei uns wird eine Lösung Bedatime eingesetzt.

Wäre sowas nicht sinnvoller?

Stephan

Matt 06.01.2006 13:14:43

AW: Auftragsarbeit Stempeluhrauswertung
 
Also prinzipiell fände ich es auch vieeel schlauer, wenn du die Überstunden nicht in stunden und minuten speichern würdest sondern nur in Minuten.
Denn die Minuten kannst du dann einfach addieren, dividierst durch 60 und rundest ab und schon hast du die stunden. Die überzähligen minuten bekommst du dann mit einem Modulo 60.

in code sieht das ungefähr so aus:

Code:

$ueberMinuten=getUeberminuten() //gibt dir beispielsweise die Überstunden eines bestimmten Mitarbeiters in dem monat in minuten zurück.
 $stunden=(int)$ueberMinuten/60;
 $minuten=$ueberMinuten%60;

print "Überstunden: $stunden h, $minuten min";

Wenn du die Überminuten errechnen willst musst du auch nur

eine SQL Query in der form machen:

select sum(uebermin) from ueberstunden where mitarbId='12' and datum>=20060101 and datum <=20060105;

Das gibt dir als resultat ein feld aus, in dem die summe der überminuten für den bestimmten benutzer Damit machst du das oben genannte und fertig.

Wenn jemand seine überstunden in dein formular eingibt, rechnest du das in überminuten um (überstunden*60 + überminuten) und speicherst das für den bestimmten tag in deiner datenbank.

Crooklyn 08.01.2006 14:14:46

AW: Auftragsarbeit Stempeluhrauswertung
 
Das is okay letzteres werd ich ausprobieren.
Ich poste dann hier weiteres...

Crooklyn 21.01.2006 12:19:28

AW: Auftragsarbeit Stempeluhrauswertung
 
Guten Morgen,

ich habe nun das nächste Problem.

Da ich ab sofort mit einer UNIX Timestamp arbeite möchte ich nun rauskriegen wie ich aus einer eingabe(einzeln für stunde und minute) inkl. Datum die Unix Timestamp rauskriege.

Wenn ich also per formular eingebe:
Stunde: 06
Minute: 43
Tag: 21
Monat: 01
Jahr: 2006

das ich daraus im Hintergrund eine Timestamp erstelle diese in die db haue und damit später weiter rechne

THX im Vorraus

D.H. ich brauche die umgekehrte funktion von strftime("%d / %m - %H:%M", $g_k)

Danke

vt1816 21.01.2006 12:51:38

AW: Auftragsarbeit Stempeluhrauswertung
 
Guckst Du 12.5. Date and Time Functions.

feuervogel 21.01.2006 14:04:02

AW: Auftragsarbeit Stempeluhrauswertung
 
falls du das in php machen willst, schau dir einfach mal die seite im handbuch über strftime an, dort stehen relativ weit unten immer hinweise zu "verwandten" funktionen...unter anderem auch mktime.

meikel (†) 21.01.2006 16:36:03

AW: Auftragsarbeit Stempeluhrauswertung
 
Zitat:

Zitat von Crooklyn
das ich daraus im Hintergrund eine Timestamp erstelle diese in die db haue und damit später weiter rechne

Schade. MySQL hat so hervorragende Datum- und Zeitfunktionen, aber egal.

Zitat:

D.H. ich brauche die umgekehrte funktion von strftime("%d / %m - %H:%M", $g_k)
Ich vermute, Du suchst das:

25.16. Wie wandle ich Sekunden in Tage/Stunden/Minuten/Sekunden um?
http://www.php-faq.de/q/q-code-intervall.html


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:14:04 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.