endlose schleife problem

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • endlose schleife problem

    hab versuchte die untere version anzupassen (mein versuch oben), leider ist ne endlosschleife rausgeworden, weiß nur nicht warum.

    die ursprüngliche version hatte den bug das der erste montag im jahr immer der .1.1. war



    leider isses mir nicht gelungen das zu probelm zulösen


    PHP Code:
    <?php
    #############
        
    function get_monday_of_week($kw,$year false
        {
                if (
    $year == false$year date("Y");
                if (
    $kw || $kw 53) return false;
                
    $dayofweek = (intval(date("w",mktime(0,0,0,1,1,$year))) == 0) ? intval(date("w",mktime(0,0,0,1,1,$year)));
                
    $dayofyear 7*($kw-2)+(9-$dayofweek);
                
    $days 0;
                
    $i 1;
                while (
    true) {
                        if (
    $days+date('t',mktime(0,0,0,$i,1,$year)) < $dayofyear) {
                            
    $days += date('t',mktime(0,0,0,$i++,1,$year));
                        } else {
                            if(
    $dayofyear-$days 1) {
                                
    //$datum = 1;    //kein montag
                            
    }else{
                                return 
    $datum = ($dayofyear-$days).".".($i).".$year";
                            }
                        }
                }
        
        }
    #############
        
    function get_monday_of_week($kw,$year false) {
                if (
    $year == false$year date("Y");

                if (
    $kw || $kw 53) return false;
                
    $dayofweek = (intval(date("w",mktime(0,0,0,1,1,$year))) == 0) ? intval(date("w",mktime(0,0,0,1,1,$year)));
                
    $dayofyear 7*($kw-2)+(9-$dayofweek);
                
    $days 0;
                
    $i 1;
                while (
    true) {
                        if (
    $days+date('t',mktime(0,0,0,$i,1,$year)) < $dayofyear) {
                            
    $days += date('t',mktime(0,0,0,$i++,1,$year));
                        } else {
                            return 
    $datum = (($dayofyear-$days 1) ? : ($dayofyear-$days)).".".($i).".$year";
                        }
                }
        }
    ?>
    thx Mukraker

  • #2
    verstehe ich das richtig? deine funktion soll das datum vom Motag der angegebenen Kalenderwoche zurückgeben?
    Probiers mal so:
    PHP Code:
    function get_monday_of_week($kw,$year false) {
        if (
    $year == false$year date("Y");
        if (
    $kw || $kw 52) return false;
        
    $ersterjan=mktime(0,0,0,1,1,$year);
        
    $dayofweek = (date("w",$ersterjan) == 0) ? intval(date("w",$ersterjan))-2// jetzt ist montag 0 und sonntag 6
        
    $dayofyear=7*($kw-1)-$dayofweek;
        return 
    date('d.m.Y l',mktime(0,0,0,1,$dayofyear,$year));
    }
    echo 
    get_monday_of_week(1,2004); 

    Comment

    Working...
    X