---
title: "Funktioner för Datum ......"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/5702-funktioner-för-datum"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "PatrikB"
published: "2000-05-12T18:37:00.000Z"
updated: "2000-05-22T10:45:00.000Z"
replies: 20
views: 306
page: 1
pages: 2
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/5702-funktioner-för-datum"
---

# Funktioner för Datum ......

_Sida 1 av 2._

## #1 — PatrikB, 2000-05-12T18:37Z

Hello,

tänkte bara dela med mig två enkla datum funktioner =) .....

Denna visar detta:

Vecka 20
\[8/5 - 14/5\]

Koden för ovanstående:

```
' Fixar Vecko nummer, startdag och slutdag för aktuell vecka.
'---------------------------------------------
Function WeekStartEndDate(myDate)

	' Fixar vilken vecka
	'---------------------------------------------
	MyDate = Year(Now) & "-01-01"
	EndDate = Now
	StartNo = WeekDay(MyDate,2)

	For i = DateValue(MyDate) to DateValue(EndDate)
		d = d + 1
		Days = d
	Next

	Do Until d =< 0

		For n = StartNo to 7
			d = d - 1
		Next
	
		StartNo = 1
		w = w + 1
	
	Loop

	' start och slut dag i veckan
	'-----------------------------
	StartDay = Day(DateDiff("d",WeekDay(myDate,2) - 1,myDate)) & "/" & Month(DateDiff("d",7 - WeekDay(myDate,2),myDate))
	EndDay = Day(DateAdd("d",7 - WeekDay(myDate,2),myDate)) & "/" & Month(DateAdd("d",7 - WeekDay(myDate,2),myDate))
	WeekStartEndDate = "<b>Vecka " & w & "<br>[</b>" & StartDay & " - " & EndDay & "<b>]</b>"

End Function
```

Den andra ändrar den första bokstaven från gemen till versal .... ni vet att när man vill ha fram tex Dagens namn ... fredag .... så får man ju liten bokstav. Ser bättre ut med stor bokstav. ..... Fredag.

```
' Ändrar första bokstaven från gemen till versal
'-----------------------------------------------
Function chgFirstToUCase(String)

	chgString = Left(String,1)
	chgString = UCase(chgString) & Right(String,Len(String) - 1)
chgFirstToUCase = chgString

End Function
```

Håll till godo alla intresserade.

/PatrikB

PS .... finns det fler som vill dela med sig av kod, posta ... DS

\[Redigerat av PatrikB den 12 maj 2000\]

\[Redigerat av PatrikB den 12 maj 2000\]

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

## #2 — Annelie, 2000-05-12T18:41Z

TACK Ja vi borde kanske ha ett script arkiv ?? Jag har ett par som jag gärna delar med mej av :f

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

## #3 — Chavez, 2000-05-12T19:05Z

Ett riktigt bra förslag det där med script arkiv iden. Eller kanske man kunde skapa ett eget forum där man kan dela med sig av det man kan. 

Tyvärr kan jag kanske inte bidra så mycket men man kan ju alltid knycka andras script :e :e :e

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

## #4 — AG, 2000-05-12T21:59Z

Var det inte nåt sånt webmaster.nu var tänkt att det skulle bli?
Väntar på den sidan men den verkar aldrig komma :)

Andreas

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

## #5 — Asp Ny, 2000-05-13T14:08Z

PatrikB\>\>\>
Det är inte vecka 20, utan vecka 19
\[8/5 - 14/5\]
Men det visste du kanske redan om

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

## #6 — PatrikB, 2000-05-13T17:36Z

Hello ASP Ny .....

.... tackar för det .... det visste jag inte =P .... måste sätt fel i kalendern.

Den nya koden:

```
' Fixar Vecko nummer, startdag och slutdag för aktuell vecka.
'---------------------------------------------
Function WeekStartEndDate(myDate)

	' Fixar vilken vecka
	'---------------------------------------------
	MyYear = Year(Now) & "-01-01"
	EndDate = Now
	StartNo = WeekDay(myDate,2)

	For i = DateValue(MyYear) to DateValue(EndDate)
		d = d + 1
		Days = d
	Next

	Do Until d =< 0

		For n = StartNo to 7
			d = d - 1
		Next
	
		StartNo = 1
		w = w + 1
	
	Loop

		' start och slut dag i veckan
	'-----------------------------
	StartDay = Day(DateDiff("d",WeekDay(myDate,2) - 1,myDate)) & "/" & Month(DateDiff("d",7 - WeekDay(myDate,2),myDate))
	EndDay = Day(DateAdd("d",7 - WeekDay(myDate,2),myDate)) & "/" & Month(DateAdd("d",7 - WeekDay(myDate,2),myDate))
	WeekStartEndDate = "<b>Vecka " & w & "<br>[</b>" & StartDay & " - " & EndDay & "<b>]</b>"

End Function
```

Där man vill att det ska visas skriver man sedan in

 \<% =WeekStartEndDate(Now)%\>

Tackar för att du var så observant 

//PatrikB

\[Redigerat av PatrikB den 13 maj 2000\]

\[Redigerat av PatrikB den 17 maj 2000\]

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

## #7 — borg, 2000-05-17T13:06Z

Din sista kod fungerar utan att dra ifrån 1 från "w". Om du drar bort 1 så blir det en vecka för lite.

En annan sak som jag upptäckt är att i månadsskiftet så blir det lite fel. Visar här 3v. i rad:
 

> Vecka 22
> \[29/5 - 4/6\] 
>
> Vecka 23
> \[5/5 - 11/6\] 
>
> Vecka 24
> \[12/6 - 18/6\]

Det blir så att säga lite fel v.23. 
Någon som har löst det redan?

Mycket tacksam för exemplet och hoppas på fler sådana i framtiden. 

/daniel - (väntar på ett scriptarkiv) :)

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

## #8 — PatrikB, 2000-05-17T18:35Z

Hello,

kan ej se vad det är för fel på vecka 23....fast du hade rätt om att jag inte ska dra ifrån ... det var rätt från början ...?:)

/PatrikB

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

## #9 — rymdknark, 2000-05-18T06:25Z

Det finns en asp-del på [www.programmersheaven.com](http://www.programmersheaven.com) 
där kan man ladda upp filer om man vill... tyvärr så har ingen gjort det ännu :(

\[Redigerat av rymdknark den 18 maj 2000\]

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

## #10 — borg, 2000-05-18T09:07Z

Att det såg fel ut från början kan bero på att vecka 1 inte startade den 1 jan. Vecka ett börjar dessutom olika. Är det inte så att v.1 alltid börjar första måndag från och med den 30 dec.?

Många nya faktorer att lägga till i scriptet. :)

/daniel

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

## #11 — PatrikB, 2000-05-18T13:35Z

Hello,
du har rätt i att årets första vecka alltid startar måndagen efter den 30 december.

Nu har jag uppdaterat scriptet så att det ska stämma (kolla noga .... man vet aldrig)

```
<%
Function WeekStartEndDate(myDate)
' Fixar vilken vecka
'---------------------------------------------
MyYear = DateDiff("y",1,Year(Now)) & "-12-30"
EndDate = Now
StartNo = WeekDay(MyYear,2)

For i = DateValue(MyYear) to DateValue(EndDate)
d = d + 1
Days = d
Next

Do Until d =< 0

For n = StartNo to 7
d = d - 1
Next

StartNo = 1
w = w + 1

Loop

' Tar bort en vecka eftersom
' räknaren börjar på föregåendes års sista vecka
w = w - 1

' start och slut dag i veckan
'-----------------------------
StartDay = Day(DateDiff("d",WeekDay(myDate,2) - 1,myDate)) & "/" & Month(DateDiff("d",7 - WeekDay(myDate,2),myDate))
EndDay = Day(DateAdd("d",7 - WeekDay(myDate,2),myDate)) & "/" & Month(DateAdd("d",7 - WeekDay(myDate,2),myDate))
WeekStartEndDate = "<b>Vecka " & w & "<br>[</b>" & StartDay & " - " & EndDay & "<b>]</b>"

End Function
%>
```

ändrade raden där det står:
MyYear = .... 

så att vecko räkningen börjar föregående års sista vecka.

La sedan till w = w - 1 efter loopen eftersom även sista veckan förra året räknas med och således skulle det visa en vecka för mycket annars.

Hoppas att det ska stämma nu ....

/PatrikB

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

## #12 — borg, 2000-05-18T14:15Z

Blir du ledsen nu när jag skriver och klagar igen? ;)

När jag kommer till en vecka i ett månadsskifte så visas startdatumet på veckan fel. 
ex. 1/4 - 7/5
Tuff arbetsvecka. :) Har du någon snygg lösning på det också?

/daniel

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

## #13 — PatrikB, 2000-05-18T17:02Z

Hello!! igen ....

nä, inte blir jag sur inte. Meningen med att dela med sig är egentligen att det är det snabbaste sättet att få skripten "bug"-fria. titta bara på detta script.....redan mycket som har blivit tillrätta lagt ....

Någon lösning på detta har jag ej ännu .. får se vad kvällen ger ..

/PatrikB

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

## #14 — PatrikB, 2000-05-19T11:52Z

Hello,

har löst detta med att första veckan vart liiiite lång =P ...

```
Function WeekStartEndDate(myDate)
' Fixar vilken vecka
'---------------------------------------------
	MyYear = DateDiff("y",1,Year(Now)) & "-12-30"
	EndDate = Now
	StartNo = WeekDay(MyYear,2)

	For i = DateValue(MyYear) to DateValue(EndDate)
		d = d + 1
		Days = d
	Next

	Do Until d =< 0

		For n = StartNo to 7
			d = d - 1
		Next

		StartNo = 1
		w = w + 1

	Loop

' Tar bort en vecka eftersom
' räknaren börjar på föregåendes års sista vecka
	w = w - 1

' start och slut dag i veckan
'-----------------------------
' Denna rad är ändrad
'--------------------

	StartDay = Day(DateDiff("d",WeekDay(myDate,2) - 1,myDate)) & "/" & Month(DateDiff("d",WeekDay(myDate,2) - 1,myDate))
	EndDay = Day(DateAdd("d",7 - WeekDay(myDate,2),myDate)) & "/" & Month(DateAdd("d",7 - WeekDay(myDate,2),myDate))
	WeekStartEndDate = "<b>Vecka " & w & "<br>[</b>" & StartDay & " - " & EndDay & "<b>]</b>"

End Function
```

Har ändrat endast en rad som jag såg att det stod fel på ... måste ha varit "finger-nisse" som varit i farten :)

Raden är i slutet och som ger varabeln StartDay

Några fler som hittat något annat är jag glad om ni hör av er ....

/PatrikB

\[Redigerat av PatrikB den 19 maj 2000\]

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

## #15 — borg, 2000-05-19T14:14Z

Done it again! Hittat ett nytt fel. :)

Om du testar årsskiftet 2001-2002 så får du en extra vecka. 

 

> Vecka 53
> \[31/12 - 6/1\]

/daniel - Mr. Bugfinder :h

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

## #16 — borg, 2000-05-19T14:33Z

Lite till att bearbeta. 1992 hade 53 veckor. Det betyder att om det finns 4(mer än halva veckan) dagar i från föregående året i vecka 1 så kommer den veckan automatiskt att bli vecka 53.

/daniel

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

## #17 — PatrikB, 2000-05-19T20:43Z

Hello,

vet, och jag har ej kommit på ngn bra lösning. Är det någon som har det?

/patrikB

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

## #18 — Annelie, 2000-05-19T21:27Z

En liten parantes som eg. inte har med scriptet att göra kanske....1998 hade 53 veckor irl ju....Kan det vara så 2001 - 2002 oxå då kanske ?

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

## #19 — fredrik99, 2000-05-21T21:50Z

Varför inte använda detta script:

\<%
startdag = Date() - Weekday(Date(), 2) + 1
slutdag = Date() - Weekday(Date(), 2) + 7
%\>
Vecka \<%= DatePart("ww", Date(), 2, 2)%\>\<br\>
             \[\<%=Day(startdag)%\>/\<%=Month(startdag)%\> 
               \- 				     \<%=Day(slutdag)%\>/\<%=Month(slutdag)%\>\]

\[Redigerat av fredrik99 den 22 maj 2000\]

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

## #20 — borg, 2000-05-22T09:30Z

> Annerli:
> En liten parantes som eg. inte har med scriptet att göra kanske....1998 hade 53 veckor irl ju....Kan det vara så 2001 - 2002 oxå då kanske ?

Hmmm, jag har nog haft fel. Det är iaf ingen v.53 2001. Har spanat lite i kalendern och sett ett samband med att om den 31dec ligger på en söndag så blir det 53v. Då borde nästa 53veckors år ligga 2009 och därefter 2015, 2020... Intervallet mellan åren är 11, 6, 5, 6 och sedan 11, 6 osv.

/daniel

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/5702-funktioner-för-datum  
Nästa sida: https://www.webforum.nu/amne/asp/5702-funktioner-för-datum/page2.md
