Modulo z datumu pomocou mktime

Programovacie jazyky, rady, poradňa...
lopotka
Amateur
Amateur
Príspevky: 20
Registrovaný: 16 apr 2008, 14:04

Modulo z datumu pomocou mktime

Príspevok od používateľa lopotka »

Zdravim.
Mam cyklus ktory vracia den v mesiaci. Potrebujem z toho dna urobit modulo aby som dostal hodnoty 0-3.
Skusal som toto:

Kód: Vybrať všetko

<?php
class Ccolor {
	var $wday_txt = "#2E8D73";
	var $wend_txt = "#008844";
	var $wday1 = "#F7F7F7";
	var $wend1 = "#D8D8D8";
	var $wday = "#00CA65";
	var $wend = "#33C849";
	var $wday_noact = "#FFFFFF";
	var $dovday = "#FFFF80";
	var $wend_noact = "#FFFFFF";
	var $today = "#ffffc0";
	var $mesiacmin = "#000000";
	var $mesiacmin1 = "#FFFFFF";
	} ;

// objekt
$color = new Ccolor ();

class Cdate {
	var $day;
	var $month;
	var $year;

	function Cdate ($time) {
		$this->day = date ("j", $time);
		$this->month = date ("n", $time);
		$this->year = date ("Y", $time);
		}
	}

// objekt
$date = isset ( $time ) ? new Cdate ( $time ) : new Cdate ( time () );
echo "<table border='0' cellspacing='1' cellpadding='0'>";

echo "<tr align='center' valign='bottom' >";
 echo "<td rowspan=3 width=160 ><b><i>&nbsp;  &nbsp;</i></b></td>";
$date->day = 7 - date ("w", mktime (0, 0, 0, $date->month, 0, $date->year));

$act_month_end = false;

for (;;) {

	// deň za dňom
	$t = mktime (0, 0, 0, $date->month, $date->day++ , $date->year);
	// číslo mesiaca [1-12]
	$date_n = date ("n", $t);
	// číslo týždňa [0-6] (Ne,Po,Ut,..)
	$date_w = date ("w", $t);

	if ($date_n == $date->month)
		$act_month_end = true;

	// prvý pondelok v ďalšom mesiaci - ukonči riadok - koniec cyklu
	if ($act_month_end == true && $date_n != $date->month ) {
        echo "</tr>";
		break;
		}
	// pondelok - nový riadok


	// predchádzajúci, alebo nasledujúci mesiac
	if ($date_n != $date->month) {
		$bgcolor = ($date_w==0 || $date_w==6) ? $color->wend_noact : $color->wday_noact;
		}
	// aktuálny mesiac
	else {
		$bgcolor = ($date_w==0 || $date_w==6) ? $color->wend1 : $color->wday1;
		}


    if ($date_n != $date->month)
        $bgcolor = ($date_w==0 || $date_w==6) ? $color->wend_noact : $color->wday_noact;
    $modulo = $t % 8;
    If ($modulo >=0 and $modulo <= 1) {
    	$zmena = "D";
    }
    else {

    If ($modulo >=2 and $modulo <= 3) {
    	$zmena = "N";
    	}
    else {
    	$zmena= " ";
    }
    }
	echo "<td align=center  bgcolor='$bgcolor' class='cell'>".$modulo."</td>";



	// nedeľa - koniec riadku


	}
	echo "</table>";

 

Ale stale vracia hodnotu 0. Neviem ci to cislo 60 je spravne.



Vdaka za kazdu radu.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Modulo z datumu pomocou mktime

Príspevok od používateľa audiotrack »

nejako to komplikuješ
deň v mesiaci ti vráti date("j") čo si tam aj použil a priradil do $this->day, a ak chceš hodnoty 0-3 tak $this->day % 4
lopotka
Amateur
Amateur
Príspevky: 20
Registrovaný: 16 apr 2008, 14:04

Re: Modulo z datumu pomocou mktime

Príspevok od používateľa lopotka »

Diky uz som nato dosiel. ze to staci z toho dna robit :)
Napísať odpoveď