[ASP]Datum van een week

Pagina: 1
Acties:

  • Pepper
  • Registratie: Februari 2002
  • Laatst online: 19-06-2025

Pepper

The one and only!!

Topicstarter
Om een weeknr. van een datum te krijgen is simpel:

DatePart("ww", datum,2,2)

Maar hoe doe ik dat nu andersom?

Dus door een weeknr. als input te hebben
en de datum van bijv. de maandag in die week als result.
Zover ik weet is er geen functie voor :?

Ik kan wel iets bedenken door de huidige week en datum te pakken en dan het verschil berekenen
en zo het antwoord eruit te krijgen. Maar ik vindt dat best onhandig en tricky.
Misschien iemand een ideetje?

Ik heb de faq door gelezen.
Search ook gebruikt daar werd wel naar een Microsoft link verwezen maar daar staat alleen het antwoord voor een de weeknr. van een datum te krijgen.

dus...


  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 30-04 19:47
Week is een propertie van datum en niet andersom, je kan dus geen week hebben zonder daarbij ook een datum te hebben volgens mij.

stp - PSN ID: stp_4


  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 08-05 09:43

Jaspertje

Max & Milo.. lief

Je zou kunnen proberen om het 'slim' op te lossen. Pak een datum, neem daar het weeknr van en controleer of dat hetzelfde is als het weeknr wat je weet

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 18:23
Heb in PHP de volgende functie gemaakt om dit te doen. Het principe is vast ook in ASP te gebruiken :)
PHP:
1
2
3
4
5
6
7
8
9
10
function weektotimestamp($year, $week, $day)
{

    $firstdate = mktime (0,0,0,01,4, $year); // jan 04 always in week 1
    $firstday = date("w", $firstdate); // fetch day of week of jan 04
    if ($firstday == 0) { $firstday = 7; } //weeks starts monday in EU, not sunday
    $offset = ($week-1) * 7 - $firstday + $day; //calc number of days difference from jan 04
    
    return strtotime('+' .$offset .' days', $firstdate);
}

[ Voor 8% gewijzigd door T-MOB op 20-04-2005 13:23 ]

Regeren is vooruitschuiven


  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 07-05 15:06

sopsop

[v] [;,,;] [v]

In principe kun je aan sec een weeknummer geen datum bepalen. Aan een weeknummer en een jaartal wel.

  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 30-04 19:47
boppert schreef op woensdag 20 april 2005 @ 13:49:
..Aan een weeknummer en een jaartal wel.
Tsja, dat lijkt me logisch zoals je het zegt...

stp - PSN ID: stp_4


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 18:23
Natuurlijk heb je ook een jaartal nodig om de datum te bepalen. Maar er zijn wel grotere problemen...

Ten eerste is er het probleem dat sommige jaren 52 weken hebben en andere 53. Zomaar het verschil uitrekenen tussen vanaf de huidige datum wordt dus tricky. Als het nu week 49 is en je wil een datum hebben bij week 2 van het nieuwe jaar moet je weten of er 5 of 6 weken tussen zitten.
De (enige) nette oplossing voor dit probleem ligt in de definitie van week 1. Dat is namelijk de week waarvan minimaal 4 dagen in januari liggen. Hieruit volgt dat 4 Januari altijd in week 1 ligt. We hebben daarmee een vast referentiepunt om het weeknummer te bepalen.

Een tweede probleem is (als je in UNIX-timestamps werkt althans) zomertijd. Reken je zomaar 24*3600 seconden per dag bij je referntiepunt dan krijg je een uur verschil als het zomertijd wordt. Op zich niet erg als je alleen de datum wil weergeven. De dag blijft immers hetzelfde als de klok een uur vooruit gaat.
Als je de datum wil gaan gebruiken voor andere toepassingen moet je wel oppassen. Haal je op basis van de timestamp alle afspraken van een bepaalde dag uit de database dan wordt een afspraak om 0:30u niet weergegeven.

In PHP heb je de functie strtotime() om op fuzzy wijze met datums te rekenen. Die functie houdt rekening met zomertijd als je een aantal dagen optelt bij een timestamp. Als ASP daar geen alternatief voor heeft zul je zelf moeten knutselen. In Nederland begint de zomertijd de laatste zondag van maart en eindigt de laatste zondag van oktober. Makkelijk te onthouden, maar zoals met zoveel berekeningen met datum en tijd vervelend om in een algoritme te stoppen...

Regeren is vooruitschuiven


  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 30-04 19:47
Misschien kun je kijken of er iets van een calendar control bestaat in ASP.

stp - PSN ID: stp_4


  • Pepper
  • Registratie: Februari 2002
  • Laatst online: 19-06-2025

Pepper

The one and only!!

Topicstarter
hmzz wordt dus gewoon uitrekenen..
jammer.. had hier best handig geweest zo een functie :D

thnx 4 replies btw ;)

dus...

Pagina: 1