Oprettet tor. d. 11. oktober 2012 kl. 12:55:49

para7
para7 (8.996 point. Point ude: 0)

Finde dato for en dag i en uge

Er der nogen der ved, hvordan man laver en funktion, der virker. Har prøvet at strikke noget sammen, jeg har googlet, men den virker ikke med rigtig dato for hele året.

<%
Session.LCID = 1030

intYear = 2012
'bytWeek = 2
bytWeek = 41
dayQuery = "torsdag"

'Response.write dayQuery & "<br>"

Response.write WeekDate(bytWeek,intYear,dayQuery)

Function WeekDate(byval bWeek, byval iYear, byval idayname)
    dtmDate = DateSerial(iYear,1,1)
    dtmDateReturn = DateAdd("ww",bWeek,dtmDate)
    iday0 = Replace(Replace(Replace(Replace(Replace(idayname,"mandag",1),"tirsdag",2),"onsdag",3),"torsdag",4),"fredag",5)
    iday = Replace(Replace(Replace(Replace(iday0,"loerdag",6),"soendag",7),"lørdag",6),"søndag",7)
    dtmDateReturn = DateAdd("d",iday-6,dtmDateReturn)
    WeekDate = dtmDateReturn
End Function
%>

Skrevet tor. d. 11. oktober 2012 kl. 16:16:36| #1

mireigi
mireigi (20.132 point)
Jeg ville nok starte med at gøre det lidt mere overskueligt:

dicDayNumber = Server.CreateObject("Scripting.Dictionary")
dicDayNumber.Add "mandag", 1
dicDayNumber.Add "tirsdag", 2
dicDayNumber.Add "onsdag", 3
dicDayNumber.Add "torsdag", 4
dicDayNumber.Add "fredag", 5
dicDayNumber.Add "lørdag", 6
dicDayNumber.Add "loerdag", 6
dicDayNumber.Add "søndag", 7
dicDayNumber.Add "soendag", 7

Function WeekDate(byval bytWeek, byval intYear, byval strDayName)

  dtmDate = DateSerial(intYear, 1, 1)
  dtmDate = DateAdd("ww", bytWeek, dtmDate)
  intWeekDay = WeekDay(dtmDate, 1)
  intOffset = dicDayNumber(strDayName) - intWeekDay

  WeekDate = DateAdd("d", intOffset, dtmDate)
End Function


Du er nødt til at finde ud af hvilken dag i ugen du starter på.

1. januar 2012 er på en søndag, altså vil 1/1/2012 + 42 uger også ligge på en søndag. Ved at finde ugedagen (WeekDay), kan du ramme den rigtige dag i ugen. Vil du gerne ramme fredag, trækker du altså 2 dage fra datoen (5 - 7).

Skrevet tor. d. 11. oktober 2012 kl. 16:48:37| #2

para7
para7 (8.996 point)
Tak, men det er vel et udkast, kan ikke lige få det til at køre. Det her dato regnskab er ret uoverkommeligt for mig. Man skulle tro det var ret enkelt at beregne hvad dag man har ud fra en given uge.

Skrevet tor. d. 11. oktober 2012 kl. 18:42:12| #3

para7
para7 (8.996 point)
Dit forslag var meget bedre, skulle bare lige fixes lidt,og have en korrektion på -6, så ser det ud til at holde alle tests:

Altså, jeg er kommet frem til det her:

intYear = 2012
bytWeek = 1
dayQuery = "torsdag"

Response.write WeekDate(bytWeek,intYear,dayQuery)

Function WeekDate(byval bytWeek, byval intYear, byval strDayName)
  dtmDate = DateSerial(intYear, 1, 1)
  dtmDate = DateAdd("ww", bytWeek, dtmDate)
  intWeekDay = WeekDay(dtmDate, 1)
    Set dicDayNumber = Server.CreateObject("Scripting.Dictionary")
    dicDayNumber.Add "mandag", 1
    dicDayNumber.Add "tirsdag", 2
    dicDayNumber.Add "onsdag", 3
    dicDayNumber.Add "torsdag", 4
    dicDayNumber.Add "fredag", 5
    dicDayNumber.Add "lørdag", 6
    dicDayNumber.Add "loerdag", 6
    dicDayNumber.Add "søndag", 7
    dicDayNumber.Add "soendag", 7
    intOffset = dicDayNumber.Item(strDayName) - intWeekDay -6
    WeekDate = DateAdd("d", intOffset, dtmDate)
End Function


Tak for nu. Mission accomplished. Skriv lige svar for point...

Skrevet fre. d. 12. oktober 2012 kl. 00:24:12| #4

mireigi
mireigi (20.132 point)
Velbekomme :)

Har selv rodet med datoer i ASP, og det er ikke helt nemt :)

Skrevet fre. d. 12. oktober 2012 kl. 17:22:42| #5

para7
para7 (8.996 point)
Ja, jeg er gået mere over til PHP, hvor det er muligt, og det er klart smartere end good old ASP :)

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   


Seneste spørgsmål

skal vise den nyeste fil

Oprettet den 23. maj 2013 kl. 06.58
Remo_Munk_Olesen giver 30 point for svar | Giv et svar »

Tabel over hvilke byer der tilhørte hvilke kommuner i 2006

Oprettet den 20. maj 2013 kl. 14.22
Niels665 giver 60 point for svar | Giv et svar »

Logge ASP fejl

Oprettet den 12. maj 2013 kl. 19.37
loukas giver 60 point for svar | Giv et svar »








Tips & Tricks fra PC World

Teaser billede

Her gemmer de hemmelige kopier af dine data sig

Hvad sker der, hvis din Mac bryder sammen og du ikke har taget backup? Fortvivl ikke. Der er gode chancer for, at der rundt omkring alligevel ligger sikkerhedskopier af dine data.


Anmeldelser fra PC World

Teaser billede

Test: Samsung Galaxy S4 er et hit - trods gøglertricks

Kan Samsung beholde førertrøjen i det store Android-race? Galaxy S4 er smækfyldt med innovative funktioner, men også med en del gøgl. Er det for meget? Få vores dom over Samsungs nye topmodel.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Ny opfindelse: Oplad din mobil på 20 sekunder

Måske er det snart slut med at lade mobilen op hver aften. Med ny opfindelse kan telefonen få fuld energi på sølle 20 sekunder.


Nyheder fra Computerworld

Teaser billede

Mail-system i sort hos stor dansk operatør - massevis af danskere ramt

Et af Danmarks helt store mail-tjenester i sort. Massevis af danskere ramt.


IT Kurser
Samarbejdspartnere

Udgiver · © 2013 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger