---
title: "datum för veckodag som infaller under"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/81565-datum-för-veckodag-som-infaller-under/page2"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "plelkes"
published: "2003-07-08T13:22:17.000Z"
updated: "2003-07-13T18:25:20.000Z"
replies: 52
views: 880
page: 2
pages: 3
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/81565-datum-för-veckodag-som-infaller-under"
---

# datum för veckodag som infaller under

_Sida 2 av 3._

## #21 — plelkes, 2003-07-11T17:20Z

Men alltså - jag blir galen
Om jag ändrar till

```
Session.LCID = 1053
dteDate = 2003-07-10
intWeekDay = WeekDay(dteDate, vbMonday)
sWeekDayName = WeekDayName(intWeekDay,,vbMonday)
Response.Write intWeekDay & " = " & sWeekDayName
```

 så får jag som det borde

> 4 = torsdag

 
men:

```
dteDate = 2003-07-07
```

 ger

> 7 = söndag

 och 

```
dteDate = 2003-07-11
```

 ger

> dteDate = 2003-07-11

Fattar inte ett dugg\*snyftsnyft\*

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

## #22 — plelkes, 2003-07-11T17:21Z

felskrivet förrut:

```
dteDate = 2003-07-11
```

 ger

> 3 = onsdag

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

## #23 — plelkes, 2003-07-11T17:45Z

felskrivet förrut:

```
dteDate = 2003-07-11
```

 ger

> 3 = onsdag

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

## #24 — plelkes, 2003-07-11T18:33Z

Blir bara mystiskare och mystiskare om jag tar koden

```
<%
<%
Session.LCID = 1053
dteDate = 2003-07-11
intWeekDay = WeekDay(dteDate, vbMonday)
sWeekDayName = WeekDayName(intWeekDay,,vbMonday)
Response.Write dteDate & "<BR>"
Response.Write intWeekDay & " = " & sWeekDayName
```

 och ändrar datumer manuellt -Så blir allt det bra ENDAST för torsdagar i juli-03. Ni kan själva   [se detta](http://www31.brinkster.com/plelkesprojekt/datum1.asp) Om jag däremot gör om det hela till en formulär för datum ändring

```
<FORM ACTION="" METHOD="post">
<TABLE WIDTH="500" BORDER="3" CELLSPACING="5" CELLPADDING="5">
  <TR> 
    <TD>Välj datum (ÅÅÅÅ-MM-DD):</TD>
      <TD><INPUT NAME="year" TYPE="text" SIZE="75"></TD>
  </TR>
  <TR ALIGN="RIGHT" VALIGN="MIDDLE"><TD><INPUT NAME="in" TYPE="submit" VALUE="Visa vald datum"></TD></TR>
</TABLE>
<%
Session.LCID = 1053
dteDate = Request.Form("year")
intWeekDay = WeekDay(dteDate, vbMonday)
sWeekDayName = WeekDayName(intWeekDay,,vbMonday)
Response.Write dteDate & "<BR>"
Response.Write intWeekDay & " = " & sWeekDayName
%>
```

 då funkar det perfekt. Ni kan själva [prova detta](http://www31.brinkster.com/plelkesprojekt/veckodag.asp)

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

## #25 — plelkes, 2003-07-12T09:35Z

ngn som har lösningen till detta??

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

## #26 — @nders, 2003-07-12T09:37Z

När du i koden specificerar datumet, så måste du ha någonting runt. Du kan använda # för att det ska vara datumtyp.

```
dteDate = #2003-07-11#
```

Annars är det samma sak som att skriva *dteDate = 1985*.

Mvh

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

## #27 — plelkes, 2003-07-12T09:40Z

tack @nders, nu kan jag äntligen fortsätta längs den snåriga stigen mot att bemästra datum med VBScript

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

## #28 — @nders, 2003-07-12T09:43Z

Varsågod, och lycka till i fortsättningen!

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

## #29 — plelkes, 2003-07-12T09:45Z

tack, räknar med att behöva hjälp även i fortsättningen, och hoppas få det med

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

## #30 — plelkes, 2003-07-12T10:36Z

Nu har jag gjort lite modifieringar

```
function GeAllhelgon(dteDate)
'//alla helgons dag den lördag som infaller under tiden den 31 oktober--den 6 november
'//först skall vi ta reda på vilken veckodag som 31 okt är, för att
'//sedan skall vi ta reda på hur många dagar vi behöver lägga till för att få en lördag.
'//Med den "inbyggda" funktion Weekday() tar vi reda på vilken veckodag som 20:e är
dteDate = #1999-10-31#
intWeekday = Weekday(dteDate, vbMonday)

'//NU skall vi räkna ut hur många dagar vi behöver lägga till för att få en lördag. Detta gör vi med den
'//inbyggda funktionen "DateAdd(interval, number, date)"
'//Det går 7 dagar på en vecka. Alltså är det 7 - intWeekDay dagar kvar till sista dagen denna vecka.
'//Vi söker ju en lördag, därför får vår vecka sluta med en lördag, dvs börja med en söndag:
dteDate = #1999-10-31#
intWeekday = WeekDay(dteDate, vbSunday)
newdate = dateAdd("d", 7-intWeekDay, dteDate)
GeAllhelgon = newdate
end function
Response.Write GeAllhelgon(dteDate)
```

 
Har provat för flera olika datum, och verkar fungera. Hoppas det inte bara är tur - för nu fattar jag iaf hur jag gjort och varför

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

## #31 — plelkes, 2003-07-12T11:30Z

Som sagt så fungerar ovanstående kod..
Men jag skulle villja ha det lite mera dynamiskt, så att man får välja årtalet med följande kod

```
Session.LCID = 1053
function GeAllhelgon(dteDate)

dteDate = year & -10 & -31
year = Request.Form("year")
intWeekday = WeekDay(dteDate, vbSunday)
newdate = dateAdd("d", 7-intWeekDay, dteDate)
GeAllhelgon = newdate
end function
Response.Write GeAllhelgon(dteDate)
```

 får jag följande felutskrifter

> Microsoft VBScript runtime error '800a01c2' 
> Wrong number of arguments or invalid property assignment: 'year'

 
Har provat "alla möjliga och omöjliga sätt" men går bet på+t

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

## #32 — @nders, 2003-07-12T11:45Z

Det finns en funktion som heter year, så kalla din variabel för något annat.

Mvh

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

## #33 — plelkes, 2003-07-12T11:51Z

när jag ändrar till

```
Session.LCID = 1053
function GeAllhelgon(dteDate)

dteDate = ar & -10 & -31
ar = Request.Form("year")
intWeekday = WeekDay(dteDate, vbSunday)
newdate = dateAdd("d", 7-intWeekDay, dteDate)
GeAllhelgon = newdate
end function
Response.Write GeAllhelgon(dteDate)
```

 
¨får jag fel:

> Microsoft VBScript runtime error '800a000d' 
> Type mismatch: 'dteDate'

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

## #34 — @nders, 2003-07-12T11:53Z

In med lite citationstecken:

```
dteDate = ar & "-10" & "-31"
```

Kanske måste du använda CDate() på uttrycket också.

Mvh

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

## #35 — plelkes, 2003-07-12T12:00Z

den gamla CDate()löste det hela :birp

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

## #36 — plelkes, 2003-07-12T18:35Z

Nu har jag följande kod

```
Session.LCID = 1053
function GeAllhelgon(dteDate)
ar = 2003
dteDate = ar & "-10" & "-31"
dteDate = CDate(dteDate)
intWeekday = WeekDay(dteDate, vbSunday)
newdate = dateAdd("d", 7-intWeekDay, dteDate)
GeAllhelgon = newdate
end function

Response.Write GeAllhelgon(dteDate) & "<BR>"
iWeekDay = DatePart("w",GeAllhelgon(dteDate))

 Response.Write iWeekDay & "<BR>"
 Response.Write WeekDayName(iWeekDay)
```

 
Har testat för ca 10 år, och får rätt datum och dagnam  M E N  Response.Write i WeekDay returnerar en 7 i stället för en 6:a
Vad att göra? - skall jag bara strunta i detta, då det iaf blir rätt namn?

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

## #37 — plelkes, 2003-07-12T18:40Z

Eller det kanske kommer av att jag tidigare på raderna har angivit att veckan börjar med söndag och då blir ju lördag dag 7

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

## #38 — @nders, 2003-07-13T07:51Z

> **plelkes skrev:**
>
> Eller det kanske kommer av att jag tidigare på raderna har angivit att veckan börjar med söndag och då blir ju lördag dag 7

Det stämmer. Det står ett par rader om det hos [DevGuru](http://www.devguru.com/Technologies/vbscript/quickref/weekday.html), i botten vid *FirstDayOfWeek*.

Mvh

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

## #39 — plelkes, 2003-07-13T10:22Z

Jag känner att snart blir jag galen!!! När jag väl TROR att jag förtår ngt - så hamnar jag tillbaka på 0 igen\*grrrr'snyft\*
Vad är skillnaden - (för jag ser det inte själv) mellan fungerande:

```
Session.LCID = 1053
ar = 1975
nyard = ar & "-01" & "-01"
nyard = CDate(nyard)
iWeekDay = DatePart("w", nyard, 2)
Response.Write "Nyårsdagen =  " 
Response.Write WeekDayName(iWeekDay, ,2) & "en den  " 
Response.Write nyard
```

 
och icke fungerande

```
Session.LCID = 1053
function NewYearday(dteDate)
ar = 1999
dteDate = ar & "-01" & "-01"
dteDate = CDate(dteDate)
End function

Response.Write NewYearday(dteDate)
iWeekDay = DatePart("w", NewYearday(dteDate), 2)
Response.Write "Nyårsdagen =  " 
Response.Write WeekDayName(iWeekDay, ,vbMonday) & ":en   "
```

 
Den senaste ger fel dag och skriver inte ut datumet

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

## #40 — @nders, 2003-07-13T10:42Z

Till att börja med; du måste returnera datumet från funktionen också.

```
NewYearday = CDate(dteDate)
```

Jag hade också sett till att funktionen tog året som parameter, och använde det. Så här borde hela klabbet se ut:

```
Session.LCID = 1053
function NewYearday(intYear)
dteDate = intYear & "-01" & "-01"
NewYearday = CDate(dteDate)
End function

dteNewYearDay = NewYearday(1999)
Response.Write dteNewYearDay
iWeekDay = DatePart("w", dteNewYearDay, 2)
Response.Write "Nyårsdagen =  " 
Response.Write WeekDayName(iWeekDay, ,vbMonday) & ":en   "
```

Fungerar det bättre då?

Mvh

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/81565-datum-för-veckodag-som-infaller-under/page2  
Föregående sida: https://www.webforum.nu/amne/asp/81565-datum-för-veckodag-som-infaller-under.md  
Nästa sida: https://www.webforum.nu/amne/asp/81565-datum-för-veckodag-som-infaller-under/page3.md
