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/
@ndersMedlem sedan juni 200032 967 inläggvassego!
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))
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
nobody expects the spanish inquisition!</A>
Funkade inte. :(
Och en fråga. Varför använder du CInt och inte CLng?
------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/
@ndersMedlem sedan juni 200032 967 inlägghuh? 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.
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
nobody expects the spanish inquisition!</A>
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
%>
------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/
IironheadMedlem sedan mars 20011 346 inlägg ...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]
Jag skriver precis så! :(
------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/
JJanspeedMedlem sedan jan. 2001510 inlägg 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. :)
Hur ska man då skriva?
Jag vill bara skriva en 2a och 2001 som i @nders exempel.
------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/
JJanspeedMedlem sedan jan. 2001510 inlägg 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. :)
Men hur blir det då med årsskiftet?
------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/
JJanspeedMedlem sedan jan. 2001510 inlägg 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]
Men det blir lite konstigt att få fram skillnaden mellan 2000-12-01 och 2000-13-01.
------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/
JJanspeedMedlem sedan jan. 2001510 inlägg 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)
JJanspeedMedlem sedan jan. 2001510 inlägg 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)
@ndersMedlem sedan juni 200032 967 inläggi 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)
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
nobody expects the spanish inquisition!</A>
JJanspeedMedlem sedan jan. 2001510 inlägg Jag håller med om att det är mycket effektivare på DatumEfter men frågan är om du behöver CDate på DatumFore?
JJanspeedMedlem sedan jan. 2001510 inlägg hmm... jag ser att jag har missat 0:an helt.
@ndersMedlem sedan juni 200032 967 inläggjag måste köra cdate på datumfore för att få använda den i dateadd, tror jag. :)
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
nobody expects the spanish inquisition!</A>
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)
------------------------^
------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/