Avatar billede dugi Nybegynder
02. november 2006 - 18:57 Der er 3 kommentarer

Find start og slut dato på bestemt uge

Hejsa,

Jeg sidder med et lille problem. Jeg har et uge nummer. Vha. dette uge nummer skal jeg finde datoen på mandagen og søndagen i den angivne uge.

Jeg har søgt nettet tyndt for scripts, men alle er alt for avanceret til det jeg skal bruge.

Er der en der ude, der kan hjælpe mig eller evt. har en færdig løsning eller et link til en SIMPEL løsning.

På forhånd tusind tak.

Med venlig hilsen
Morten Rugaard
Avatar billede intenz Novice
02. november 2006 - 19:12 #1
Her er en mulighed, lavet lige fra hoften. Kan være det ikke virker helt, men noget i den stil i hvert fald.

<?
$uge = "42"; // f.eks. uge 42

$time = time();

$forste_dag_i_aar = mktime(0, 0, 0, 1, 1, date("Y", $time));
$uge_den_forste_i_aar = date("W", $forste_dag_i_aar);

while($uge_den_forste_i_aar != 1) {
$forste_dag_i_aar = $forste_dag_i_aar+86400;
$uge_den_forste_i_aar = date("W", $forste_dag_i_aar);
}

$forste_mandag_i_uge_et = $uge_den_forste_i_aar;

$dato_i_valgte_uge_som_time = $forste_mandag_i_uge_et+($uge*7*86400);
$dato_i_valgte_uge = date("d/m,Y", $dato_i_valgte_uge_som_time);

print "$dato_i_valgte_uge";
?>
Avatar billede dadane Novice
07. november 2006 - 14:52 #2
Den 4. januar ligger altid i uge 1. (Hvis den 3. januar er en søndag, - så ligger den i uge52/53 for sidste år).

Så følgende program må kunne gøre det:

<? $aar=2006; $uge=50; ?>
<? $ugedag=mktime(0,0,0,1,7*($uge-1)+4,$aar); ?>

>>> Dag i uge <?=$uge?>: <?=date("d/m-Y",$ugedag)?><br/>

>>> Dag for denne dato: <?=date("w",$ugedag)?> (0 er søndag, 1 er mandag, .. 6 er fredag)<br/>

Mandag er så <?=date("d/m-Y",mktime(0,0,0,1,7*($uge-1)+4-date("w",$ugedag)+1,$aar)); ?><br/>
Søndag er så <?=date("d/m-Y",mktime(0,0,0,1,7*($uge-1)+4-date("w",$ugedag)+7,$aar)); ?><br/>

De to linjer med >>> kan naturligvis undværes. Kan vel nærmest ses som en psedu-dokumentation.
Avatar billede dadane Novice
08. november 2006 - 10:22 #3
Noget af det der kan bruges?

Måske skal jeg lige fortælle at det er et veldokumenteret trick i PHP jeg bruger. Den 32. januar er den 1. februar, - den 14. måned i 2006 er den 2. måned i 2007 etc. Og det er 'sikkert' og tager højde for skudår og alting. Så det jeg gør er blot at finde en dato som helt sikkert er i uge X, - nemlig den X*7+4. januar (eller nærmere den X*7+4' dag i året).
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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