Avatar billede lund_dk Praktikant
09. januar 2007 - 11:10 Der er 15 kommentarer og
1 løsning

Liste dage i ugen

Skal blot have listet alle dage i en uge fra mandag - søndag
Avatar billede fennec Nybegynder
09. januar 2007 - 11:47 #1
Mere specifik?? Vi du give den et ugenr også få datoerne??
Avatar billede lund_dk Praktikant
09. januar 2007 - 12:04 #2
Jeg skal bare i sidste ende have datoerne på de dage, i den uge man er i

dvs i dagen i dag, så skal jeg have listet

mandag 08
tirsdag 09
onsdag 10
torsdag 11
fredag 12
lørdag 13
søndag 14
Avatar billede fennec Nybegynder
09. januar 2007 - 12:34 #3
Du bliver nød til at sende året med også. Jeg har denne funktione, som finder mandag i ugen/året:

Function UgeTilDato1(aar,uge)
    dim januar1,ugedagjan1,mandagugex,xdagugex,mandaguge1
    januar1 = DateSerial(aar, 1, 1)
    ugedagjan1 = Weekday(januar1, vbMonday)
    if ugedagjan1 <= 4 then
        ' 1. januar er i uge 1
        mandaguge1 = DateAdd("d", -ugedagjan1+1, januar1)
    else
        ' 1. januar er i sidste uge foregående år
        mandaguge1 = DateAdd("d", 7-ugedagjan1+1, januar1)
    end if
    UgeTilDato1 = mandaguge1
End Function

mandag = UgeTilDato1(10,2007)
for f=0 to 6
  dato = dateadd(mandag,f)
  response.write WeekdayName(wekday(dato),2)& dato &"<br>"
next
Avatar billede fennec Nybegynder
09. januar 2007 - 12:37 #4
Der var en fejl:
response.write WeekdayName(wekday(dato),2)& dato &"<br>"

skal være:
response.write WeekdayName(weekday(dato,2), false, 2)& dato &"<br>"
Avatar billede fennec Nybegynder
09. januar 2007 - 12:39 #5
og
dato = dateadd(mandag,f)

skal være
dato = dateadd("d",f,mandag)
Avatar billede lund_dk Praktikant
09. januar 2007 - 12:39 #6
Er ligemeget hvordan jeg kommer frem til det, bar jeg kommer frem til det :D

dato = dateadd(mandag,f)

Den giver mig fejlen:
Der opstod en Microsoft VBScript-kørselsfejl (0x800A01C2)
Antallet af argumenter er forkert eller egenskabstildelingen er ugyldig: 'DateAdd'
Avatar billede fennec Nybegynder
09. januar 2007 - 12:39 #7
Altså sådan:

mandag = UgeTilDato1(10,2007)
for f=0 to 6
  dato = dateadd("d",f,mandag)
  response.write WeekdayName(weekday(dato,2), false, 2)& dato &"<br>"
next
Avatar billede lund_dk Praktikant
09. januar 2007 - 12:45 #8
med den kode får jeg nu

mandag04-01-2010
tirsdag05-01-2010
onsdag06-01-2010
torsdag07-01-2010
fredag08-01-2010
lørdag09-01-2010
søndag10-01-2010

og det er sat med mandag = UgeTilDato1(10,2007)

Passer det at 10 er ugenr,og 2007 er år?
Avatar billede fennec Nybegynder
09. januar 2007 - 12:47 #9
Doh. Det var da den værste gang kode jeg længe har fået skrev herind. Det er kun den oprindelig funktione som virker...

Det skal selvfølgelig være:
mandag = UgeTilDato1(2007,10)
Avatar billede lund_dk Praktikant
09. januar 2007 - 12:51 #10
Hehe :P

Men okay, bytter jeg om, så får jeg dette resultat:

mandag01-01-2007
tirsdag02-01-2007
onsdag03-01-2007
torsdag04-01-2007
fredag05-01-2007
lørdag06-01-2007
søndag07-01-2007


Jeg har session.LCID = 1030 i toppen af min side
Avatar billede lund_dk Praktikant
09. januar 2007 - 12:52 #11
Ser faktisk, at uanset hvad ugenummer jeg skriver, så er resultatet det samme som ovenstående
Avatar billede fennec Nybegynder
09. januar 2007 - 13:13 #12
Banker mit hoved gentagende gange mod muren!!!

Det er selvfølgelig også den forkert funktion jeg har smidt ind:
Function UgeTilDato(aar,uge)
dim januar1,ugedagjan1,mandaguge1,mandagugex
    januar1 = DateSerial(aar, 1, 1)
    ugedagjan1 = Weekday(januar1, vbMonday)
    if ugedagjan1 <= 4 then
        ' 1. januar er i uge 1
        mandaguge1 = DateAdd("d", -ugedagjan1+1, januar1)
    else
        ' 1. januar er i sidste uge foregående år
        mandaguge1 = DateAdd("d", 7-ugedagjan1+1, januar1)
    end if
    mandagugex = DateAdd("ww", uge-1, mandaguge1)
    UgeTilDato = mandagugex
End Function

response.write UgeTilDato(2007,10)
Avatar billede lund_dk Praktikant
09. januar 2007 - 13:18 #13
ja ser du, nu virker skidtet sgu..


Håber ikke du fik alt for ondt i hovedet :S
Avatar billede lund_dk Praktikant
09. januar 2007 - 13:31 #14
Kan bruge funktionen andet sted også..

Kan det tilføjes, at hvis jeg eks hiver den uge ud, man er i, at den KUN viser de dage der har været?

dvs har jeg sat den til uge 2, 2007

Så udskriver den kun i dag, mandag og tirsdag ud.


Eks på torsdag, udskriver den kun man, tir, ons, tor
Avatar billede fennec Nybegynder
09. januar 2007 - 13:37 #15
Jeg havde fortjent det :o)

.o) <-- One Eyed Jack
Avatar billede fennec Nybegynder
09. januar 2007 - 13:39 #16
Det skal du klare i loopet:

for f=0 to 6
  dato = dateadd("d",f,mandag)
  if datediff("d",dato,date) >=0 then
    response.write WeekdayName(weekday(dato,2), false, 2)& dato &"<br>"
  end if
next
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester