QuidMedlem sedan juni 20006 022 inläggTrådstart#1 Jag är ute efter en funktion som räknar ner arbetstid till nästa helg.
Jag jobbar 8-17, lunch mellan 12 och 13.
Jag vill ha det i formatet: Det är X timmar, x minuter och x sekunder kvar till helg.
Någon som orkar knåpa ihop en sån funktion? 
(ps. jag gör det iaf inte)
SSebbeMedlem sedan jan. 20032 285 inlägg Är till 99% säker på att den stämmer. 
<%
Function WorkTime(dtmDate)
intTime = CDate(Hour(dtmDate) & ":" & Minute(dtmDate) & ":" & Second(dtmDate))
intWeekday = Weekday(dtmDate, vbMonday)
If intWeekday = 7 Then intWeekday = 6
intDays = 6 - intWeekday
intSeconds = intDays * 8 * 3600
If intTime => CDate("8:00:00") AND intTime =< CDate("12:00:00") Then
intSeconds = intSeconds - (((Hour(intTime) - 8) * 3600 + (Minute(intTime) * 60) + Second(intTime)))
ElseIf intTime => CDate("13:00:00") AND intTime =< CDate("17:00:00") Then
intSeconds = intSeconds - (((Hour(intTime) - 9) * 3600 + (Minute(intTime) * 60) + Second(intTime)))
End If
intHours = Int(intSeconds / 3600)
intMinutes = Int((intSeconds - intHours * 3600) / 60)
intSeconds = intSeconds - ((intHours * 60 + intMinutes) * 60)
WorkTime = intHours & " timmar, " & intMinutes & " minuter och " & intSeconds & " sekunder kvar till helgen."
End Function
Response.Write(WorkTime(Now()))
%>
/red En liten ändring bara.
QuidMedlem sedan juni 20006 022 inläggVerkar funka kanon, tack som fan.
En liten sak bara, varje gång klockan är efter 17:00 så visar den 40 timmar.
SSebbeMedlem sedan jan. 20032 285 inlägg Skriv om If-satsen till det här så ska det nog funka. 
If intTime => CDate("8:00:00") AND intTime =< CDate("12:00:00") Then
intSeconds = intSeconds - (((Hour(intTime) - 8) * 3600 + (Minute(intTime) * 60) + Second(intTime)))
ElseIf intTime => CDate("13:00:00") AND intTime =< CDate("17:00:00") Then
intSeconds = intSeconds - (((Hour(intTime) - 9) * 3600 + (Minute(intTime) * 60) + Second(intTime)))
ElseIf intTime > CDate("17:00:00") AND intWeekday < 6 Then
intSeconds = intSeconds - 8 * 3600
End If
/red Klantade till det lite grann, men nu är det nog rätt. 
/red2 Eller inte... Nu så ska det funka! 
QuidMedlem sedan juni 20006 022 inläggFunkar kanon, tack som fan!
SSebbeMedlem sedan jan. 20032 285 inlägg Tyvärr inte riktigt perfekt.
Har ändrat lite i funktionen nu, så jag skriver hela den "nya" funktionen den här gången.
Function WorkTime(dtmDate)
intTime = CDate(Hour(dtmDate) & ":" & Minute(dtmDate) & ":" & Second(dtmDate))
intWeekday = Weekday(dtmDate, vbMonday)
If intWeekday => 6 Then
WorkTime = "Det är ju helg nu!"
Exit Function
End If
intDays = 6 - intWeekday
intSeconds = intDays * 8 * 3600
If intTime => CDate("8:00:00") AND intTime =< CDate("12:00:00") Then
intSeconds = intSeconds - (((Hour(intTime) - 8) * 3600 + (Minute(intTime) * 60) + Second(intTime)))
ElseIf intTime => CDate("13:00:00") AND intTime =< CDate("17:00:00") Then
intSeconds = intSeconds - (((Hour(intTime) - 9) * 3600 + (Minute(intTime) * 60) + Second(intTime)))
ElseIf intTime > CDate("17:00:00") Then
intSeconds = intSeconds - 8 * 3600
End If
intHours = Int(intSeconds / 3600)
intMinutes = Int((intSeconds - intHours * 3600) / 60)
intSeconds = intSeconds - ((intHours * 60 + intMinutes) * 60)
WorkTime = intHours & " timmar, " & intMinutes & " minuter och " & intSeconds & " sekunder kvar till helgen."
End Function
OOveRRidEMedlem sedan feb. 200112 078 inlägg Markera gärna det svar som bidrog till lösningen som slutgiltigt.