---
title: "Arbetstid kvar till helg?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/100922-arbetstid-kvar-till-helg"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Quid"
published: "2004-04-05T10:44:34.000Z"
updated: "2004-04-05T14:01:41.000Z"
replies: 6
views: 338
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/100922-arbetstid-kvar-till-helg"
---

# Arbetstid kvar till helg?

## #1 — Quid, 2004-04-05T10:44Z

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)

Permalänk: https://www.webforum.nu/p/100922

## #2 — Sebbe, 2004-04-05T11:31Z

Ä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.

Permalänk: https://www.webforum.nu/p/1317307

## #3 — Quid, 2004-04-05T12:17Z

Verkar funka kanon, tack som fan.

En liten sak bara, varje gång klockan är efter 17:00 så visar den 40 timmar.

Permalänk: https://www.webforum.nu/p/1317328

## #4 — Sebbe, 2004-04-05T12:35Z

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! ;)

Permalänk: https://www.webforum.nu/p/1317334

## #5 — Quid, 2004-04-05T12:44Z

Funkar kanon, tack som fan!

Permalänk: https://www.webforum.nu/p/1317342

## #6 — Sebbe, 2004-04-05T12:45Z

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
```

Permalänk: https://www.webforum.nu/p/1317343

## #7 — OveRRidE, 2004-04-05T14:01Z

Markera gärna det svar som bidrog till lösningen som slutgiltigt.

Permalänk: https://www.webforum.nu/p/1317375

---

Tråden på webben: https://www.webforum.nu/amne/asp/100922-arbetstid-kvar-till-helg
