Hej på er i sommarvärmen :p
Har sökt svaret men inget funnit:
Jag har 2 datum d1 och d2. Nu vill jag reda på vilken dag/datum som en viss veckodag infaller på (tex måndag)
function GimmeMyMonday(dteDate1, dteDate2)
intWeekday = Weekday(dteDate1, vbMonday)
newdate = dateAdd("d", 7-intWeekday+1, dteDate1)
if newdate <= dteDate2 then
GimmeMyMonday = newdate
else
GimmeMyMonday = "ERROR!"
end if
end function
Response.Write GimmeMyMonday (#2003-07-08#, #2003-07-18#)
Fråga mig inte om +1-kompenseringen i dateAdd(). Jag lär mig aldrig hur amerikanerna och deras datum fungerar. ;)
Fråga mig inte om +1-kompenseringen i dateAdd(). Jag lär mig aldrig hur amerikanerna och deras datum fungerar
Vad har amerikanerna med vårt datum att göra??
Det verkar fungera så här, men inte när jag försöker ändra - kan bero påa tt jag inte fattar hur du tänker - förklara gärna koden mera utförligt
function GimmeMyMonday(dteDate1, dteDate2)
[blue]' veckodagsnumret ska vi använda för
' att kunna räkna ut hur många dagar vi
' ska lägga till för att få det till måndag:[/blue]
intWeekday = Weekday(dteDate1, vbMonday)
[blue]' Vi skapar ett nytt datum, som blir måndagen
' snarast efter datum1:[/blue]
newdate = dateAdd("d", 7-intWeekday+1, dteDate1)
[blue]' Nu ser vi till att kontrollera att det nya
' datumet befinner sig i intervallet:[/blue]
if newdate <= dteDate2 then
GimmeMyMonday = newdate
else
GimmeMyMonday = "ERROR!"
end if
end function
Man börjar med att försöka sätta sig in i hur datumfunktionerna i asp fungerar, och vad de returnerar. Sedan sätter man sig ner och testar en jäkla massa tills man får det att fungera.
Man tuggar igenom Microsofts VBScript-dokumentation och även det som finns på devguru, och sedan nöter man tangenter.
Som sagt, jag kan inte helt förklara för dig exakt hur datumfunktionerna fungerar, jag tycker inte att de är helt logiska.
Man börjar med att försöka sätta sig in i hur datumfunktionerna i asp fungerar, och vad de returnerar. Sedan sätter man sig ner och testar en jäkla massa tills man får det att fungera. Man tuggar igenom Microsofts VBScript-dokumentation och även det som finns på devguru...
Men inte tycker jag att jag har blivit så mycket klokare...
Inte ens med facit ( @nders kodning) i handen fattar jag konstuktionen..
Fast så långt har jag i a f insett att det var mycket smart av @nders...
Jag tror mig förstå så långt att:
bestämmer man vilken veckodag som perioden börjar på
och sedan hur många veckodagar behöver man lägga till för att få en lördg
Ta reda på vilken dag det är i veckan för det datum du söker. Ange att en normal vecka börjar med Måndag (= 1). Idag (2003-07-10) ger intWeekday = 4.
intWeekday = Weekday(dteDate1, vbMonday)
Vilket datum har kommande måndag? Det går 7 dagar på en vecka alltså är det 7 - intWeekday dagar kvar till sista dagen denna vecka, Söndag, och 7 - intWeekDay + 1 dagar kvar till kommande måndag.