webForumDet fria alternativet

Hjälp att få fram veckans alla datum!

ASP

8 svar · 381 visningar · startad av Coccozz

Medlem sedan apr. 20032 072 inlägg
Frågan#1

Hej!
Jag behöver lite hjälp nu.
Har kört fast i ett script som skall hjälpa mig att ta fram alla dagars datum som ingår i en vecka, alla dagars månad samt alla dagars år.
Det vill säga att t.ex.
<%=monDAY%> skriver ut måndagens DAG inte hela datumet (denna veckan 21)
<%=monMONTH%> skriver ut måndagens MÅNAD (denna veckan 02)
<%=monYEAR%> skriver ut måndagens ÅR (denna veckan 2005)

<%=tueDAY%> skriver ut tisdagens DAG inte hela datumet (denna veckan 22)
<%=tueMONTH%> skriver ut tisdagens MÅNAD (denna veckan 02)
<%=tueYEAR%> = skriver ut tisdagens ÅR (denna veckan 2005)

osv.
Frågan är bara hur jag ska få detta att stämma, vet att det går eftersom jag har gjort det en gång tidigare, råkade dock formatera bort den sidan :( och har nu drabbats av totalt hjärnsläpp och fullständig handelsförlamning.
Hoppas ni förstår vad jag menar.
Tack // Christoffer

Medlem sedan apr. 20032 072 inlägg
#2

Ska kanske tillägga hur strängen monDAY ser ut idag:

MonDay = DatePart("d", vbMonday, vbFirstFourDays)

Kan absolut noll om DatePart, vilket ni nog kommer att märka. Denna sträng funkar dock inte (visar 1 vilket är fel, måndagen denna veckan var 21)
Strängar för monMONTH och monYEAR behövs fortfarande eftersom jag inte kommer på de.

Medlem sedan okt. 2004502 inlägg
#3

Du menar så här?

   'Beräkna startdatum (startdate), som alltså anger datum för måndagen.
   startdate=now
   startdate=startdate-datepart("w", now(),2)+1
   
   for i=0 to 6
      response.write datepart("d", startdate+i) & "&nbsp;"
   next
Medlem sedan apr. 20032 072 inlägg
#4

Sorry att det dröjde. Hade dock lite annat på schemat innan jag kunde testa detta (s.k. skolarbeten a.k.a. tråkig jävla dynga :().
Har i vilket fall kört igenom det nu och det fungerar som en dröm. tack så hemskt mycket.
Gjorde även om de så att de genererar en korrekt månad samt ett korrekt år.
Då återstår bara att få varje datum för sig i strängar.
jag måste nämligen kunna skriva <%=monDAY%> osv. utan att behöva dra upp hela loopen.
Ett bra förslag på hur detta ska gå till är hjärtligt välkommet ;)
Tack //

Medlem sedan juni 200032 967 inlägg
#5

Coccozz skrev:

Då återstår bara att få varje datum för sig i strängar.
jag måste nämligen kunna skriva <%=monDAY%> osv. utan att behöva dra upp hela loopen.

Vad menar du att det är du vill göra alltså?

Medlem sedan apr. 20032 072 inlägg
#6

Såhär ligger det till. Jag kör nu den kod som jonnyz gav mig innan (se ett par inlägg upp i tråden) till att rendera datumet på alla veckans dagar. Det vill sägga den skriver ut
21 22 23 24 25 26 27 (denna veckan).
Sedan har jag den koden igen, men ändrad så att den istället skriver ut vilken månad varje dag ligger i. Det blir:
2 2 2 2 2 2 2 (denna veckan)
Och sen har jag koden ytterligare igen, men då berättar den vilket år det är på de olika dagarna.
2005 2005 2005 2005 2005 2005 2005 (denna veckan)
Såhär långt fungerar allt super. Men jag vill t.ex. kunna bara få fram datumet på måndagen (inte hela listan) och bara månaden på onsdag osv.
Vad jag menar är att jag behöver rendera varje dags datum för sig, eller på något sätt få in måndagens datum i en sträng och tisdagens i en annan osv.
Så till slut har jag en sträng som är MÅNDAGENS DATUM en som är MÅNDAGENS MÅNAD och en som är MÅNDAGENS ÅR, sen tillkommer likadant för de andra dagarna fram t.om.
Förstår du nu?

Medlem sedan apr. 20032 072 inlägg
#7

Har fått det som jag ville nu, kom på hur jag gjorde förra gången.
Dock har jonnyz script vart till mycket stor hjälp. Tack så mycket.
Här har du @nders en superb förklaring på vad jag ville ha ;)

startdate=now
startdate=startdate-datepart("w", now(),2)+1

MonDay = DatePart("d", startdate+0)
TueDay = DatePart("d", startdate+1)
WedDay = DatePart("d", startdate+2)
ThuDay = DatePart("d", startdate+3)
FriDay = DatePart("d", startdate+4)
SatDay = DatePart("d", startdate+5)
SunDay = DatePart("d", startdate+6)

MonMonth = DatePart("m", startdate+0)
TueMonth = DatePart("m", startdate+1)
WedMonth = DatePart("m", startdate+2)
ThuMonth = DatePart("m", startdate+3)
FriMonth = DatePart("m", startdate+4)
SatMonth = DatePart("m", startdate+5)
SunMonth = DatePart("m", startdate+6)

MonYear = DatePart("yyyy", startdate+0)
TueYear = DatePart("yyyy", startdate+1)
WedYear = DatePart("yyyy", startdate+2)
ThuYear = DatePart("yyyy", startdate+3)
FriYear = DatePart("yyyy", startdate+4)
SatYear = DatePart("yyyy", startdate+5)
SunYear = DatePart("yyyy", startdate+6)

Som du ser jonnyz, din startday sträng där, det var den som löste det hela. TACK!

Medlem sedan juni 200032 967 inlägg
#8

Dateadd() fungerar prima. Använd måndagens datum, lägg till x dagar för att få ut det du vill ha. En subrutin kan se ut typ:

sub getDateStrings(dStartDate, iDay, ByRef sDay, ByRef sMonth, ByRef sYear)
    dTempDate = dateadd("d", dStartDate, iDay)
    sDay = day(dTempDate)
    sMonth = month(dTempDate)
    sYear = year(dTempDate)
end sub

I iDay skickar du in antalet dagar som ska läggas på startdatumet, dvs 0 för måndag, 1 för tisdag, etc. Kalla sedan på subrutinen:

' vi vill ha onsdagsgrejer!
call getDateStrings(startdate, 2, sMyDay, sMyMonth, sMyYear)
'nu finns det värden i variablerna [i]sMyDay, sMyMonth[/i] och [i]sMyYear[/i].

Jag har utgått ifrån att startdate innehåller rätt datum, dvs måndag i given vecka.

Edit: man ska tydligen inte skriva så långsamt...

Medlem sedan apr. 20032 072 inlägg
#9

Hehe :P
Tack så mycket för ditt förslag, men jag tror jag nöjer mig med så som det ser ut idag eftersom det fungerar utmärkt bra och jag förstår vad jag har gjort. Du ligger liksom några kunskapnivåer över mig ;)
Tack iaf. för all hjälp :birp

761 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
622 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
623 ms — ändringar (db)