---
title: "Dagar i månad"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/9256-dagar-i-månad"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Erik Juhlin"
published: "2001-05-03T11:35:00.000Z"
updated: "2001-05-03T14:49:00.000Z"
replies: 37
views: 482
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/9256-dagar-i-månad"
---

# Dagar i månad

_Sida 1 av 2._

## #1 — Erik Juhlin, 2001-05-03T11:35Z

Jag vill veta hur många dagar det är i en månad.
Så om jag skriver februari (2) år 1998 så vill jag få fram hur många dagar det var den månaden.
Hur skriva? :)

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

## #2 — @nders, 2001-05-03T11:50Z

vassego! 

testa får du göra själv...

```
strMonth="2"
strYear="2001"
antaldagar = cint(right(dateAdd("d",-1, cdate(strYear & "-" & right("0" & cint(strMonth)+1, 2) & "-01")),2))
```

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

## #3 — Erik Juhlin, 2001-05-03T12:00Z

Funkade inte. :(

Och en fråga. Varför använder du CInt och inte CLng?

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

## #4 — @nders, 2001-05-03T12:03Z

huh? det funkar klockrent hos mig...
vad får du för fel hos dig?

tja, mest för att antal dagar, månader eller år inte har så stor risk att överstiga 32768, som är den övre gränsen för int i vb/vbscript.

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

## #5 — Erik Juhlin, 2001-05-03T12:07Z

Jag skriver så här och får en etta. :(

```
<%
strMonth="2"
strYear="2001"
antaldagar = cint(right(dateAdd("d",-1, cdate(strYear & "-" & right("0" & cint(strMonth)+1, 2) & "-01")),2))
Response.Write antaldagar
%>
```

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

## #6 — ironhead, 2001-05-03T12:09Z

...funkar kanon hos mig.

Kör IIS 5

\<%
strMonth="2"
strYear="2001"
antaldagar = cint(right(dateAdd("d",-1, cdate(strYear & "-" & right("0" & cint(strMonth)+1, 2) & "-01")),2))
Response.Write antaldagar
%\>

\[Redigerat av ironhead den 03 maj 2001\]

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

## #7 — Erik Juhlin, 2001-05-03T12:11Z

Jag skriver precis så! :(

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

## #8 — Janspeed, 2001-05-03T12:15Z

Kan du inte prova det här:

```
DatumFore = "1998-02-01"
DatumEfter = "1998-03-01"

Dagar = DateDiff("d", DatumFore, DatumEfter)
Dagar = Dagar - 1
```

Är dock inte så haj på datum men du kan ju prova. :)

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

## #9 — Erik Juhlin, 2001-05-03T12:17Z

Hur ska man då skriva?
Jag vill bara skriva en 2a och 2001 som i @nders exempel.

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

## #10 — Janspeed, 2001-05-03T12:22Z

Frågan är om du ens behöver minska dagar med 1?

```
dim ar, manad
ar = 1998
manad = 2

DatumFore = ar & "-" & manad & "-01"
DatumEfter = ar & "-" & manad + 1 & "-01"

Dagar = DateDiff("d", DatumFore, DatumEfter)
```

Jag tror det ska funka. :)

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

## #11 — Erik Juhlin, 2001-05-03T12:24Z

Men hur blir det då med årsskiftet?

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

## #12 — Janspeed, 2001-05-03T12:29Z

Vilket årsskifte? 

Det enda jag vet är att DateDiff tar ut hur många dagar det är mellan två datum.

Så för att få hur många dagar februari 1998 har så tar du bara datumet 1998-02-01 (1 februari 1998) mot 1998-03-01 (1 mars 1998) så får du ut antalet dagar som månaden var med DateDiff. :)

\[Redigerat av Janspeed den 03 maj 2001\]

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

## #13 — Erik Juhlin, 2001-05-03T12:30Z

Men det blir lite konstigt att få fram skillnaden mellan 2000-12-01 och 2000-13-01.

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

## #14 — Janspeed, 2001-05-03T12:35Z

Det fixar du enkelt med en if-sats

```

dim ar, manad
ar = 1998
manad = 2

DatumFore = ar & "-" & manad & "-01"

If manad = 12 Then
DatumEfter = ar & "-" & 1 & "-01"
Else
DatumEfter = ar & "-" & manad + 1 & "-01"
End If

Dagar = DateDiff("d", DatumFore, DatumEfter)
```

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

## #15 — Janspeed, 2001-05-03T12:37Z

Sorry glömde året också.

```
dim ar, manad
ar = 1998
manad = 2

DatumFore = ar & "-" & manad & "-01"

If manad = 12 Then
DatumEfter = ar + 1 & "-" & 1 & "-01"
Else
DatumEfter = ar & "-" & manad + 1 & "-01"
End If

Dagar = DateDiff("d", DatumFore, DatumEfter)
```

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

## #16 — @nders, 2001-05-03T12:38Z

i så fall så ställer jag mig upp och högljutt skriker **dateadd!**

```
dim ar, manad
ar = 1998
manad = 2

DatumFore = cdate(ar & "-" & right("0" & manad,2) & "-01"
DatumEfter = dateadd("m",1,DatumFore)

Dagar = DateDiff("d", DatumFore, DatumEfter)
```

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

## #17 — Janspeed, 2001-05-03T12:41Z

Jag håller med om att det är mycket effektivare på DatumEfter men frågan är om du behöver CDate på DatumFore?

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

## #18 — Janspeed, 2001-05-03T12:43Z

hmm... jag ser att jag har missat 0:an helt.

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

## #19 — @nders, 2001-05-03T12:46Z

jag måste köra cdate på datumfore för att få använda den i dateadd, tror jag. :)

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

## #20 — Erik Juhlin, 2001-05-03T12:47Z

Vad är det för fel på den här koden nu då?

```
<%
statyear = 1998
statmonth = 12

CDate(statyear & "-" & right("0" & statmonth,2) & "-01")
DateAdd("m", 1, datebefore)

daysinmonth = DateDiff("d", datebefore, dateafter)
Response.Write daysinmonth
%>
```

> Error Type:
> Microsoft VBScript compilation (0x800A0414)
> Cannot use parentheses when calling a Sub
> /erik_Local/IABStatistic/ASP Page1.asp, line 21, column 25
> DateAdd("m",1,datebefore)
> \------------------------^

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/9256-dagar-i-månad  
Nästa sida: https://www.webforum.nu/amne/asp/9256-dagar-i-månad/page2.md
