Avatar billede spejder_leon Nybegynder
18. august 2004 - 10:21 Der er 9 kommentarer og
1 løsning

Returnere første og sidste dag i en uge ud fra uge nr.

Givet 17, skal funktionen fortælle mandag i uge 17's dato og søndag's dato.
Avatar billede fennec Nybegynder
18. august 2004 - 10:23 #1
Kan ikke lade sig gøre uden mere info. Vigtigst af alt hvilket år der er snak om.
Avatar billede spejder_leon Nybegynder
18. august 2004 - 10:41 #2
Året er det aktuelle
evt. komme fra en variabel
Avatar billede spejder_leon Nybegynder
18. august 2004 - 10:44 #3
Jeg tænker noget i retning af: - men kender ikke vb-funktionen der kan give dato udfra uge nr.

private function(MyweekNo,Mystart,Myend)


Mystart = cdate(firstDayOfWeek(MyweekNo))
Myend = cdate(firstDayOfWeek(MyweekNo+1)-1)

end functoin
Avatar billede fennec Nybegynder
18. august 2004 - 10:49 #4
Der er heller ikke en sådan funktion. Jeg har lavet det engang, og er ved at finde det frem. Ellers kan det da laves igen :o)
Avatar billede spejder_leon Nybegynder
18. august 2004 - 10:55 #5
;) - ok. tænkte det nok, nå hva pokker vi kan vel kode ligeså godt som MS-ansatte....
Avatar billede hekla Nybegynder
18. august 2004 - 11:57 #6
spejder_leon, du har et spørgsmål fra januar, som du ikke har lukket!
Avatar billede fennec Nybegynder
18. august 2004 - 12:08 #7
Kan desværre ikke finde det gamle script. Og har ikke lige tid til at lave det igen (der er meget test)

Det du skal gøre er at gå ud fra den 01-01-YYYY. hvis det ikke er en mandag, skal du gå tilbage til den dato. Find ugenummeret (kan være 52,53 eller 1) herfra springer du så x antal uger frem. husk at når du finder ugenummeret skal du bruge mandag som første ugedagdag og 4-dagsreglen, ellers bruges søndag og 1.jan-reglen.

DatePart("ww",EnDato,vbMonday,vbFirstFourDays)

Kan du selv klare det, ellers kan jeg godt se på det senere???
Avatar billede spejder_leon Nybegynder
18. august 2004 - 12:35 #8
Regner med selv at kunne kode mig ud af det, men det ville jo være nemmere hvis VB havde en supr. func. der lige kunne.... - Smider koden herop når jeg laver den, men i projektet pt. er der andre ting der er mere preserende.... så hvis du keder dig er der point til en kode der virker.... ;)
Avatar billede fdata Forsker
18. august 2004 - 19:06 #9
Prøv med:

Function Test_Uge_FindEnDato()
  Const UgeNr = 34
  MsgBox "Uge " & UgeNr & vbCrLf & vbCrLf & Uge_FindEnDato(UgeNr, 1) & vbCrLf & Uge_FindEnDato(UgeNr, 7)
End Function

Private Function Uge_FindEnDato(UgeNr As Integer, DagNr As Byte) As Date
  Uge_FindEnDato = DateSerial(Year(Date), 1, UgeNr * 7 + Choose(DatePart("w", DateSerial(Year(Date), 1, 1), vbMonday, vbFirstFourDays), DagNr - 7, DagNr - 8, DagNr - 9, DagNr - 10, DagNr - 11, DagNr - 7, DagNr - 6))
End Function

(send en venlig tanke til Thomas Jespersen for inspiration)
Avatar billede spejder_leon Nybegynder
19. august 2004 - 14:54 #10
PERFEKT!
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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

IT-JOB

European Stonecraft

Intern Navision/BC Supporter

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Forsvarets Cyberdivision søger SAP-medarbejder til Roller & Autorisationer

IT-Universitetet i København

CIO