webForumDet fria alternativet

Räkning av tid (avancerat)

ASP

7 svar · 303 visningar · startad av alvedon11

Medlem sedan maj 20034 inlägg
Frågan#1

har sökt på detta forum men inget svar hittat.

jag har ett lite komplicerat problem som jag vill lösa men vet inte hur då jag är ny inom asp.

problemet är denna:

jag har en databas som ser ut så här

id|datum|morgon|lunch|tlunch|hem|
1 |030303|20.40|21.40|22.40|23.40

jag kan nu räkna ut antalet timmar som gått mellan timestampsen just denna dag och alla andra dagar, men endast för sig, dvs dag 1 =1 timme dag två = 2 timmar eller så

problemet är nu att jag vill kunna se på skärmen hur många timmar det gått sammanlagt låt oss säga just dena vecka. dvs dag 1 plus dag 2 plus dag 3 osv. och sedn för denna månad och slutligen för detta år.

med andra ord något så här på skärmen:

idag : 10 timmar
denna vecka : 50 timmar
denna månad : 400 timmar
detta år : 1000 timmar

vet inte hur man kan ordna detta därför ber jag er om hjälp.

snälla är i desperat behov av det.

Medlem sedan dec. 200012 464 inlägg
#2

Vilken databashanterare använder du?

Medlem sedan juli 200012 978 inlägg
#3

Det kan kanske lösa sig om du skapar en post för varje trans och sedan flaggar den som in eller ut dvs den första på ett datum måste vara In och den sista (fram till 06 ) påföljande dag vara Ut.
Då kan du enkelt räkna fram tiden och dessutom har du skapat ett flexiblare system.
Kan det vara ett förslag?

Medlem sedan maj 20034 inlägg
#4

LarsG: Jag använder access som databas.

Lasp: Jag fattar inte riktigt hur du menar, men om jag fattat det rätt ska den endast lägga in 2 poster i databasen per dag?
Det är så att jag måste använda 4 poster. Jag har funderat på att låta scriptet skriva in i en extra kolumm antalet timmar som gått om dan, och utifrån det räkna ut med hjälp av SUM men det jag inte vet är hur jag ska kunna lösa så den själv räknar veckorna rätt, dvs utan att jag ska behöva och sitta och skriva när veckorna tar slut, det ska väl gå?

Medlem sedan juli 200012 978 inlägg
#5

Min tanke var att varje transaktion var en post dvs minst två per dag.
Då kan du kolla att en person har både börjat och slutat och kan skapa en fellista för mauell rättning (folk glömmer)

Medlem sedan maj 20034 inlägg
#6

Lasp: ju du har antagligen rätt, men jag kommer nog ha kvar dessa 4 fält osv så jag slipper göra om allting.

men ingen ide hur man kan göra deet jag frågade om i början?

Medlem sedan juli 200012 978 inlägg
#7

Ok varför inte lägga till ett fält till då. TidiDag.
Då kan du accumulera det fältet när du får ut tiderna före lunch och vid hemgång.
Sen är det lätt att räkna. Arbetstid räknar man ju i sex(6) minutersintervaller ochså. så 17 min är 18 20 är 24 osv.

Medlem sedan maj 20034 inlägg
#8

Lasp:

ju det var det jag tänkte göra, men som sagt får jag ut tiderna utan problem för just den dagen och jag har valt att bara ta ut timmar och visa dem då jag tyckte det var tillräckligt och personen jag gör det åt sa det med.

men det jag undrar främst är om jag nu skapar en extra kolumm "tididag" och lägger datan där i, hur gör jag gför att räkna exakt vecka för vecka, och att den visar antal timmar just denna vecka?

Detta är koden jag har för närvarande, skulle gärna vilja veta hur jag gör så den skriver in varje post med antal timmar för just den dagen.

Kod:

<%
Dim usern
usern = Session("UserName")

Set RS = Server.CreateObject("ADODB.Recordset")
SQL = "Select TOP 50, ID, Datum, Morgon, Lunch, TLunch, Hem From [" & usern & "] Order By ID DESC"
Set RS = Connect.Execute(SQL)
%>

<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="100"><font size="1" face="verdana, arial"><b>Datum</b></font></td>
<td width="100"><font size="1" face="verdana, arial"><b>Kom till Jobbet</b></font></td>
<td width="100"><font size="1" face="verdana, arial"><b>Gick på Lunch</b></font></td>
<td width="100"><font size="1" face="verdana, arial"><b>Tillbaka från Lunch</b></font></td>
<td width="100"><font size="1" face="verdana, arial"><b>Gick Hem</b></font></td>
<td width="100"><font size="1" face="verdana, arial"><b>Antal Timmar</b></font></td>
</tr>

<%
Do While Not RS.EOF

time1 = RS("Morgon")
time2 = RS("Lunch")
time3 = RS("TLunch")
time4 = RS("Hem")
date1 = RS("Datum")

time5 = DATEDIFF("h", time1, time2)
time6 = DATEDIFF("h", time3, time4)

time7 = time5 + time6
%>

<tr>
<td><font size="1" face="verdana, arial"><% =RS("Datum") %></font></td>
<td><font size="1" face="verdana, arial"><% =RS("Morgon") %></font></td>
<td><font size="1" face="verdana, arial"><% =RS("Lunch") %></a></font></td>
<td><font size="1" face="verdana, arial"><% =RS("TLunch") %></font></td>
<td><font size="1" face="verdana, arial"><% =RS("Hem") %></font></td>
<td><font size="1" face="verdana, arial"><% =time7 %> timme(ar)</font></td>
</tr>

<%
RS.MoveNext
loop
RS.Close
Connect.Close
Set RS = Nothing
Set Connect = Nothing
%>

260 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)