webForumDet fria alternativet

Förfallodatum

ASPur ASP

8 svar · 439 visningar · startad av MickeA.com

MickeA.comMedlem sedan feb. 20034 441 inlägg
#1

Hej!

Jag har sökt efter ett svar på det här och kollat upp bla. Datediff() på MSDN, men får inte till det alls.

Jag vill få ut namnet på den månad som var för fyra månader sen.
Skulle vilja uppnå detta genom tex. en funktion. Skulle man köra det här idag, skulle svaret vara "Maj".
Det är ett annat problem, vill få ut svaret i formatet "Januari", "Februari" osv.

Har kommit såhär (långt):

month(date) - 4

Det ger resultatet "5", vilket är "Maj". Problemet är att jag inte lyckats få ut namnet på månaden.
Gjorde även ett tappert försök till en funktion:

Function gDate(strDate)
		Manaden = month(strDate - 4)
		Select Case Manaden
			Case 1 : 	ReManaden="Januari"
			Case 2 : 	ReManaden="Februari" 
			Case 3 : 	ReManaden="Mars" 
			Case 4 : 	ReManaden="April" 
			Case 5 : 	ReManaden="Maj" 
			Case 6 : 	ReManaden="Juni" 
			Case 7 : 	ReManaden="Juli" 
			Case 8 : 	ReManaden="Augusti" 
			Case 9 : 	ReManaden="September" 
			Case 10 : ReManaden="Oktober" 
			Case 11 : ReManaden="November" 
			Case 12 : ReManaden="December" 
		End Select
	gDate = ReManaden
End Function

Problemet är att den skriver ut "September", vilket är fel.
Funktionen borde returnera "Maj", men jag har förmodligen gjort något fel i den.

Skulle alltså behöva hjälp med det här, tack!

JosefMedlem sedan mars 20023 561 inlägg
#2

Du har ju använt en annan variant i funktionen, prova att ändra: Manaden = month(strDate - 4) till Manaden = (month(strDate) - 4).

MickeA.comMedlem sedan feb. 20034 441 inlägg
#3

Det var det som var felet, tack så mkt!

@ndersMedlem sedan juni 200032 969 inlägg
#4

Om man använder den koden kan man ju fundera på vad som händer före maj. Manaden kommer ha innehållet 0, -1, -2 eller -3. Är det det du vill?

Använd DateAdd(). Är du inte med på beskrivningarna på MSDN, kolla devguru.

För att få ut månadens namn kan man använda MonthName().

MickeA.comMedlem sedan feb. 20034 441 inlägg
#5

Gjorde såhär:

Function gDate(d)
		Manaden = (month(d) - 4)
		Select Case Manaden
			Case 1 : 	ReManaden="Januari"
			Case 2 : 	ReManaden="Februari" 
			Case 3 : 	ReManaden="Mars" 
			Case 4 : 	ReManaden="April" 
			Case 5 : 	ReManaden="Maj" 
			Case 6 : 	ReManaden="Juni" 
			Case 7 : 	ReManaden="Juli" 
			Case 8 : 	ReManaden="Augusti" 
			Case 9 : 	ReManaden="September" 
			Case 10 : ReManaden="Oktober" 
			Case 11 : ReManaden="November" 
			Case 12 : ReManaden="December" 
		End Select
	gDate = ReManaden
End Function

Kallar på den med:

<%=gDate(date)%>

Så du @nders menar att den här koden inte kommer funka "året om"?

/r Aha, skickar jag med Januari som datum, blir det som du säger, ja just det.
Hmm, har du lust att dra ett exempel på hur du menar?
Ska även kolla upp vad DevGuru säger.

@ndersMedlem sedan juni 200032 969 inlägg
#6

Med koden i Josefs inlägg kommer det att bli månad -3 om det är januari nu, så nej, koden kommer inte att fungera.

Manaden = Month(dateadd("m", -4, date))

Istället för din funktion för att hämta månadsnamn, använd MonthName():

strMonthName = MonthName(Manaden)

mvh

MickeA.comMedlem sedan feb. 20034 441 inlägg
#7

HeHe, har gjort om min kod efter vad jag läst på DevGuru och kommit fram till precis samma sak, har bytt ut Manaden = (month(d) - 4) till Manaden = Month(DateAdd("m", -4, d)).

Nu funkar det bra och kommer förmodligen göra det oavsett vilken månad det är.

Tack!

MickeA.comMedlem sedan feb. 20034 441 inlägg
#8

Kom på en grejj jag måste tillägga.
Om det är så att aktuell månad är ex. "Februari", blir således fyra månader tidigare "Oktober".
Om jag nu vill ha med årtal i funktionen ovan, hur ska jag göra då? För då ska "Oktober" i mitt fall ha år 2003 och "Februari" ska ha 2004.

Vad ska jag lägga till för att få till den sista biten?

@ndersMedlem sedan juni 200032 969 inlägg
#9
dteMyDate = dateadd("m", -4, date)
strMonth = Month(dteMyDate)
strMonthName = MonthName(strMonth)
intYear = Year(dteMyDate)
132 ms totalt · 3 externa anrop · v20260731065814-full.c74b5be1
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)