Nån som har nåt knep för att lyfta ut datum från ett veckonummer. > Nån som har nåt knep för att lyfta ut datum från ett veckonummer. Kanske så här...det kan vara buggar så testa detta lite mer. Tackar!Plocka ut datumserie ur veckonummer?
Det jag är ute efter är de datum som finns inom ett veckonummer.
EX:
Vecka 12:
2002-03-18
2002-03-19
2002-03-20
2002-03-21
2002-03-22
2002-03-23
2002-03-24
Dessutom räknar VB söndag som veckans första dag. Det vill jag också ändra till måndag.
mvh
Torbjörn Sv: Plocka ut datumserie ur veckonummer?
Jag gjorde så här:
* Funktionen tar ett årtal och ett veckonummer som argument och returnerar datumet som den efterfrågade veckan börjar med.
* Funktionen kollar vilken veckodag som 1 januari inföll det efterfrågade året samt om det skedde i vecka 1. (Det händer ju att det ibland är vecka 52 eller 53.)
* Funktionen korrigerar för eventuell vecka 52 eller 53 och förflyttar sig till måndag vecka 1.
* Funktionen hoppar fram (efterfrågadVecka - 1) * 7 dagar och returnerar därefter det funna datumet.
Detta skrev jag dock i php och eftersom jag inte är så hemma på asp/vb kan jag inte ge dig någon kod för det. Förhoppningsvis kan någon annan översätta det om du heller inte är så bevandrad bland vbskripts tid- och datumfunktioner.Sv: Plocka ut datumserie ur veckonummer?
<code>
'Svensk locale
session.LCID = 1053
'Detta skall vara första dagen på det aktuella året du har
firstDayOfYear = "2002-01-01"
'Ditt veckonr
myWeek = 12
'Då året har 52 veckor så lägger vi till en vecka i stöten till årets första
'dag och får ett nytt datum.
for i = 1 to 52
tempDate= dateAdd("ww",i,firstDayOfYear)
'Ta ut veckonr på det nya datumet och kolla om det är samma
'som variablen myWeek
if datePart("ww",tempDate,2,1) = myWeek then
'Om det är samma så placerar vi det datumet i variablen
'newDate
newDate = tempDate
exit for
end if
next
'Få ut dagens nummer i veckan ur newDate
dayNr = weekday(newDate ,vbMonday)
'Lägga till och ta bort med dateAdd för att få ut första och sista dagen i veckan.
'Första och sista dagen i veckan.
'firstDateOfThisWeek = dateAdd("d",(-dayNr + 1),newDate )
'lastDateOfThisWeek = dateAdd("d",(-dayNr + 7),newDate )
'skriv ut datumen i denna vecka
for i = 1 to 7
Response.Write dateAdd("d",(-dayNr + i),newDate )& "<br>"
next
</code>
//PutteSv: Plocka ut datumserie ur veckonummer?
Skall kika på det, men det verkar funka ganska bra vid första
anblick!
mvh
Torbjörn