webForumDet fria alternativet

Dagar i månad

ASPur ASP

37 svar · 432 visningar · startad av Erik Juhlin · sida 2 av 2

Frågan, av Erik Juhlin

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? :) \------------------ /Erik www.juhlin.nu /sk8files/ /mp2d/

Läs frågan i sin helhet →
Medlem sedan jan. 2001510 inlägg
#21

Nu vet ju inte jag hur du ska tilldela manad sitt värde. :)

dim ar, manad
ar = 1998
manad = 02

DatumFore = ar & "-" & manad & "-01"
DatumEfter = dateadd("m",1,DatumFore)

Dagar = DateDiff("d", DatumFore, DatumEfter)
Medlem sedan juni 200032 967 inlägg
#22
CDate(statyear & "-" & right("0" & statmonth,2) & "-01")

vad är det tänkt att den raden ska göra?

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
nobody expects the spanish inquisition!</A>

Medlem sedan jan. 2001510 inlägg
#23

Dina variabler är ju lite huller om buller Erik.

Medlem sedan maj 200010 687 inlägg
#24

Nu ser det ut så här och verkar funka. Inga mer ändringar som jag bör göra?

<%
statyear = 1998
statmonth = 2

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

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

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

Medlem sedan jan. 2001510 inlägg
#25

Lysande. Vilket teamwork. :)

Medlem sedan jan. 2001510 inlägg
#26

För mig funkade det utan right().


dim ar, manad
ar = 1998
manad = 2

DatumFore = ar & "-" & manad & "-01"
DatumEfter = dateadd("m",1,DatumFore)

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

Response.Write Dagar
Medlem sedan jan. 2001510 inlägg
#27

dvs. båda fungerade. Det är kanske min server som e speciell.

...Eller kanske inte. :)

Medlem sedan jan. 2001510 inlägg
#28

Det känns så sorgligt att detta inlägga är löst. Vi som jobbade så bra tillsammans med problemet.

...Usch vad deprimerad jag blev. Tror jag har suttit framför datorer för länge. :)

Medlem sedan juli 2000836 inlägg
#29

Tjohooo!

Får jag kasta mig in i leken och säga DateSerial ?

dim ar, manad
ar = 1998
manad = 2

Response.Write right(DateSerial(ar,manad+1,0),2)

------------------
- J-O-H-N-S-E-N -
------------------

Medlem sedan jan. 2001510 inlägg
#30

När jag kör den funktionen så returnerar den 98 dagar i februari. Har du verkligen provat den?

Medlem sedan jan. 2001510 inlägg
#31

Tar inte DateSerial bara datumen och slår ihop dem?

Fast man skulle kunna skriva så här:

Dim ar, manad
ar = 1998
manad = 2

DatumFore = DateSerial(ar, manad, 1)
DatumEfter = dateadd("m",1,DatumFore)

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

Response.Write Dagar
Medlem sedan juli 2000836 inlägg
#32

Oj, det var en lång månad :)
Jag testade i PWS och det funkade utmärkt, fast man kanske inte kan göra så?

------------------
- J-O-H-N-S-E-N -
------------------

Medlem sedan mars 20002 836 inlägg
#33

... annars funkar denna klockrent ...

<%
dteYear = "1998"
dteMonth = "2"

Select Case dteMonth

	Case 1,3,5,7,8,10,12
		intDays = 31

	Case 2
		If IsDate("February 29, " & dteYear Then
			intDays = 29
		Else
			intDays = 28
		End If
	Case Else
		intDays = 30

End Select

Response.Write intDays
%>

cya,
PatrikB

------------------
Ingenting är omöjligt.
Det omöjliga tar bara något längre tid att genomföra.

[Redigerat av PatrikB den 03 maj 2001]

Medlem sedan juli 2000836 inlägg
#34

Man skall skriva så här! ;)

dim ar, manad
ar = 1998
manad = 2

Response.Write DatePart("d",DateSerial(ar,manad+1,0))

------------------
- J-O-H-N-S-E-N -
------------------

Medlem sedan jan. 2001510 inlägg
#35

DateSerial(år, månad, dag) tar heltalen år, månad och dag och slår samman dem till ett datumvärde. Värdena kan vara negativa.

Jag hänvisar fortfarande till min och anders flashiga kod:

Dim ar, manad
ar = 1998
manad = 2
DatumFore = DateSerial(ar, manad, 1)
DatumEfter = dateadd("m",1,DatumFore)

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

Response.Write Dagar

Som säkert funkar överallt. :)

Medlem sedan jan. 2001510 inlägg
#36

Sorry! Källan på mitt citat tidigare var från "Lär dig Active Server Pages 3.0 på 3 veckor" av Scott Mitchell & James Atkinson från 4GuysFromRolla.com

Om det nu var nån som var intresserad. :)

Medlem sedan jan. 2001510 inlägg
#37

Tufft. Det fungerade ju guld, Johnsen. Men det är ju lustigt att asp:n godkänner att du har en dag 0. :)

[Redigerat av Janspeed den 03 maj 2001]

Medlem sedan juli 2000836 inlägg
#38

Varför skulle det inte gå med 0? 0 är ju dag 1-1 dvs dagen innan den första.

Anledningen till att det blev fel i mitt första inlägg är datumformatet. I PWS blev det svenskt: 1970-01-01, men på andra servrar gav det: January 1, 1970
------------------
- J-O-H-N-S-E-N -
------------------

[Redigerat av Johnsen den 03 maj 2001]

136 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)