Avatar billede andsvel Nybegynder
12. marts 2008 - 09:31 Der er 1 løsning

læg sammen og ret en lille fejl

**alt ære til Zynzz, mht. koden**

<?
include("db.php");

function regnTIDER($startMIN, $startTIME, $slutMIN, $slutTIME, $dag, $maaned, $aar, $helligdag){

$dagUNIX = mktime (0, 0, 0, $maaned, $dag, $aar); // Unixtime for starten af dagen
$startUNIX = mktime ($startTIME, $startMIN, 0, $maaned, $dag, $aar); // Unixtime for start af arbejde
$slutUNIX = mktime ($slutTIME, $slutMIN, 0, $maaned, $dag, $aar); // Unixtime for slut af arbejde

$arbejdsTID = $slutUNIX-$startUNIX; // Finder arbejdstid ialt

$startKLOKKEN = 8*3600; // Sekunder til kl. 8
$slutKLOKKEN = 16*3600; // Sekunder til kl. 16


if($helligdag == 1 OR date("w", $dagUNIX) == 0 OR date("w", $dagUNIX) == 6){ // Tjekker om det er en helligdag eller bare lørdag-søndag

$arbejdsTIDvis = $arbejdsTID/60/60;

return "0-". $arbejdsTIDvis; // Tetunere tid
}


if($helligdag != 1 OR date("w", $dagUNIX) != 0 OR date("w", $dagUNIX) != 6){ // Tjekker om det er en helligdag eller bare lørdag-søndag

$overARBEJDEstart = ($dagUNIX+$startKLOKKEN)-$startUNIX;
$overARBEJDEslut = $slutUNIX-($dagUNIX+$slutKLOKKEN);

$overARBEJDE = $overARBEJDEstart + $overARBEJDEslut;

$normalARBEJDE =  $arbejdsTID-$overARBEJDE; // Finder normal arbejdstid

if($overARBEJDE > 0){
$normalARBEJDEvis = $normalARBEJDE/60/60;
$overARBEJDEvis = $overARBEJDE/60/60;
return $normalARBEJDEvis."-".$overARBEJDEvis; // Retunere tid
}

if($overARBEJDE <= 0){
$arbejdsTIDvis = $arbejdsTID/60/60;
return $arbejdsTIDvis."-0"; // Retunere tid
}
}
}

$query = mysql_query("SELECT * FROM timereg") or die(mysql_error());

while ($row = mysql_fetch_array($query)) {

// Tester lige
$id = $row['id'];
$startMIN  = $row["start_min"];
$startTIME  = $row["start_time"];
$slutMIN  = $row["slut_min"];
$slutTIME = $row["slut_time"];
$dag = $row["dag"];   
$maaned = $row["maaned"];
$aar = $row["aar"];
$helligdag = $row["hellig"];

echo regnTIDER($startMIN, $startTIME, $slutMIN, $slutTIME, $dag, $maaned, $aar, $helligdag);

echo "<br>";
}
?>

------
Jeg kan Dælme' ikke finde ud af at få lagt normaltid sammen til et Ialt. Uden for while. det samme gælder overtid.

desuden trækker den en time fra overtiden vær gang du kommer en time under 16:00.

dvs. alt inden 8 er over arbejde. så hvis du arbejder fra 7-15
skulle du have 1 overtime + 7 normaltimer. men den skriver bare 8 normaltimer.
Avatar billede andsvel Nybegynder
22. april 2008 - 14:13 #1
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester