Avatar billede bobbedude Nybegynder
27. august 2011 - 20:38 Der er 3 kommentarer og
1 løsning

Find datoer fra ugenummer

Hvis jeg har UGE 34 hvordan finder jeg så ud af hvilke datoer der er i den uge?
Avatar billede richardjensen Seniormester
27. august 2011 - 21:12 #1
Den simple løsning må være at 'google' uge 34 ,og derved få en kalender for hele året.
Men det er vel ikke noget så simpelt du søger ?
Avatar billede Slettet bruger
27. august 2011 - 22:06 #2
Ugenumre afhænger af hvilket land du er interesseret i (og i nogle tilfælde hvilken årgang). Nogle uger starter f.eks. med søndag, mens andre starter med mandag. Årets første uge afhænger f.eks. af hvilken uge der har den første mandag eller torsdag. I Danmark bruger vi mandag som ugens første dag (men før 1973 var ugens første dag en søndag), og årets første uge er den uge som indeholder årets første torsdag.

Hvis vi antager du har en dato i den uge, hvor du vil finde datoerne for mandag og søndag (i Danmark efter 1973), så kan du f.eks. bruge DateTime.AddDays(-1) i et loop indtil du har fundet DayOfWeek == Monday, og så lægge 6 dage til for at finde datoen for søndag.

Hvis du kun kender ugenummer + år, så ved jeg ikke om der er en nem måde at sætte en dato i denne uge, ellers er du nødt til at loope igennem ugerne indtil du er i den rigtige uge i det rigtige år. Calendar kan fortælle dig hvilken uge en bestemt dato ligger i, med regler for hvilken dag der er den første ugedag og hvilken ugedag der er i årets første uge.
Avatar billede keysersoze Guru
28. august 2011 - 00:35 #3
Aldeles utestet;

WeekNumber = 34
FirstDayOfYear = DateSerial(Year(Date()), 1, 1)
FirstDayOfFirstWeek = FirstDayOfYear - Weekday(FirstDayOfYear, 2) + 1
FirstDayOfWeekN = DateAdd("ww", WeekNumber, FirstDayOfFirstWeek)
LastDayOfWeekN = DateAdd("d", 6, FirstDayOfWeekN)
Avatar billede bobbedude Nybegynder
28. august 2011 - 21:40 #4
Function UgeTilDato(aar,uge,dag)
  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)
  xdagugex = DateAdd("d", dag-1, mandagugex)
  UgeTilDato = xdagugex
End Function
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