17. august 2005 - 13:08Der er
4 kommentarer og 1 løsning
Find bestemte uger mellem 2 datoer
Hejsa Jeg er interesseret i at kende ugenumrene på fx. hver tredje uge i en bestemt periode, fx
Startdato = 03-10-2005 Slutdato = 10-02-2006
startugen er i ovenstående uge 40 2005 og slutugen er uge 6 2006 ****************** startdato = CDate(rs("Dato")) startuge = DatePart("ww", startdato, vbMonday, vbFirstFourDays) slutdato = CDate(rs("DatoSlut")) slutuge = DatePart("ww", slutdato, vbMonday, vbFirstFourDays) udskrivtekst_hver_x_uge = 3 'rs("xuge") tekst = rs("beskrivelse") ******************
I ovenstående exsempel vil jeg gerne udskrive "tekst" hver tredje uge i perioden. Jeg har en løkke der tager en given måned ad gangen og gennem løber ugerne, men hvordan ved jeg om jeg har fat i en uge der er "hver tredje" i ovenstående periode.
I eksemplet vil jeg altså gerne udskrive "tekst" når jeg i min løkke har fat i uge: 40,43,46,49,52 i år 2005 og i uge 3,6 år 2006
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Jeg forestiler mig en løsning, hvor man først får et array ud med "ugenumrene på hver tredje uge" i perioden også bagefter kan man tjekke om den aktuelle uge er i arrayet.
Jeg ved bare ikke helt hvordan... og hvordan holder man styr på gentagende ugenumre i arrayet, hvis nu perioden er over flere år fx 5 år kan et ugenummer jo godt være i arrayet flere gange...
Jeg er kommet lidt videre jeg har fået udfyldt 2 array med uger og år: ************** xuge = CInt(xuge) tempStartdato = startdatofor_aktuelt_arrangement Dim arUge() Redim arUge(1) Dim arAar() Redim arAar(1) arTaeller = 0
arUge(arTaeller) = DatePart("ww", tempStartdato, vbMonday, vbFirstFourDays) arAar(arTaeller) = Year(tempStartdato) naesteUgeTilArray = DatePart("ww", tempStartdato+(xuge*7), vbMonday, vbFirstFourDays) Do until CDate(tempStartdato) > CDate(slutdatofor_aktuelt_arrangement) tempStartdato = CDate(tempStartdato)+7 tempUge = DatePart("ww", tempStartdato, vbMonday, vbFirstFourDays) tempAar = Year(tempStartdato) if tempUge = naesteUgeTilArray then arTaeller = arTaeller + 1 Redim Preserve arUge(arTaeller) Redim Preserve arAar(arTaeller) arUge(arTaeller) = DatePart("ww", tempStartdato, vbMonday, vbFirstFourDays) arAar(arTaeller) = Year(tempStartdato) naesteUgeTilArray = DatePart("ww", tempStartdato+(xuge*7), vbMonday, vbFirstFourDays) end if Loop ************************ Nu skal jeg så bare finde ud af at bruge dem :-)
Do until CDate(tempStartdato) > CDate(slutdatofor_aktuelt_arrangement) tempUge = DatePart("ww", tempStartdato, vbMonday, vbFirstFourDays) tempAar = Year(tempStartdato) tempKikefter = tempUge&"_"&tempAar if tempUge = naesteUgeTilArray then vaerdi_til_array = DatePart("ww", tempStartdato, vbMonday, vbFirstFourDays) &"_"&Year(tempStartdato) if vaerdi_til_array = kikefter then udskriv = true exit do else naesteUgeTilArray = DatePart("ww", tempStartdato+(xuge*7), vbMonday, vbFirstFourDays) end if end if tempStartdato = CDate(tempStartdato)+7 Loop ******************
Håber andre måske nyde godt af ovenstående - jeg fik jo selv opgaven :-)
Synes godt om
Ny brugerNybegynder
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.