Динамичен църковен календар

talevtehnology

Registered
Здравейте реших да пусна кода в PHP и MySQL готови кодове, за да послужи на някой :)

В първата част на кода определяме датите на динамичните празници.
Първо определяме датата на Великден чрез целочислено делене с десетичен остатък "%" по приложения алгоритъм след, което изчисляваме празниците, които зависят от датата на Великден.
За да можем да броим календарни дни използваме mktime и strtotime .
$cons = 7 - задаваме колко дни да брои
strtotime("-/ + ".$cons."days",$time)); - минуса означава че ще изваждаме

$y=date("Y"); указваме на променливата да приеме годината (с date) Y е голям защото годината ни трябва във вида "2010" защото участва в изчисленията.

Във втората част правим проверката спрямо текущата дата и добавяме статичните празници

На първия ред във втората част
$date= date("d/m/$y"); указваме на променливата да приеме датата (с date)
и след това си правим проверката ако текущата дата съвпада с посочената присвояваме на променливата $praznic името на текущия празник. На последния ред с echo("<center><h3>$praznic</h3>"); показваме писвоената стойност на променливата $praznic

Код:
<?php
// Определяне датата на динамичните празници. 
$y=date("Y");
	$n1 =($y%19);
    $n2 =($y%4);
    $n3 =($y%7);
    $na = 19*$n1+16;
    $n4 =($na%30);
    $nb = 2*$n2+4*$n3+6*$n4;
    $n5 =($nb%7);
    $nc =($n4+$n5);
// Определяне датата на Великден.	
    $time = mktime(0,0,0,3,22,$y); 
    $cons = 13; 
    $vd= date("d/m/Y ",strtotime("+".$cons."days",$time));
	$vdd=date("d",strtotime("+".$cons."days",$time));
	$vdm=date("m",strtotime("+".$cons."days",$time));
// Определяне датата на Цветница.
	$time = mktime(0,0,0,$vdm,$vdd,$y); 
    $cons = 7; 
    $c= date("d/m/Y ",strtotime("-".$cons."days",$time));
	$cd=date("d",strtotime("-".$cons."days",$time));
	$cm=date("m",strtotime("-".$cons."days",$time));
// Определяне датата на Спасовден.	
	$time = mktime(0,0,0,$vdm,$vdd,$y); 
    $cons = 39; 
    $s= date("d/m/Y ",strtotime("+".$cons."days",$time));
	$sd= date("d",strtotime("+".$cons."days",$time));
	$sm= date("m",strtotime("+".$cons."days",$time));
// Определяне датата на Петдесетница.	
	$time = mktime(0,0,0,$vdm,$vdd,$y); 
    $cons= 49; 
    $p= date("d/m/Y ",strtotime("+".$cons."days",$time));
	$pd= date("d",strtotime("+".$cons."days",$time));
	$pm= date("m",strtotime("+".$cons."days",$time));
// Определяне датата на Свети Дух.	
	$time = mktime(0,0,0,$vdm,$vdd,$y); 
    $cons = 50; 
    $Sd= date("d/m/Y ",strtotime("+".$cons."days",$time));
	$sdd= date("d",strtotime("+".$cons."days",$time));
	$sdm= date("m",strtotime("+".$cons."days",$time));

	$date= date("d/m/$y");  
    if($date == "01/01/$y")
 {$praznic ="Днес е Св.Василий Велики(Василовден)";}
else if($date == "06/01/$y")
 {$praznic ="Днес е Богоявление(Йордановден)";}
else if($date == "07/04/$y")
 {$praznic ="Св.Йоан Кръстител (Ивановден)";}
else if($date == "02/02/$y")
 {$praznic ="Сретение Господне";}
else if($date == "25/03/$y")
 {$praznic ="Днес е Благовещение";}
else if($date=="$cd/$cm/$y")
 {$praznic ="Днес е Цветница (Връбница)!";}
else if($date == "$vdd/$vdm/$y")
 {$praznic ="Днес е Възскресение господне (Великден)!";}
 else if($date == "06/05/$y")
{$praznic ="Днес е Гергьовден";}
else if($date == "11/05/$y")
 {$praznic ="Св.Кирил и Методий !";}
else if($date == "$sd/$sm/$y")
 {$praznic ="Днес е Възнесение Господне (Спасовден)!";}
else if($date == "$pd/$pm/$y")
 {$praznic ="Днес е Петдесетница!";}
else if($date == "$sdd/$sdm/$y")
 {$praznic ="Днес е Свети Дух!";}
else if($date == "29/06/$y")
 {$praznic ="Днес е Св.ап.Петър и Павел(Петровден)!";}
else if($date == "20/07/$y")
 {$praznic ="Днес е Св.пророк Илия(Илинден)!";}
else if($date == "06/08/$y")
 {$praznic ="Днес е Преображение Господне!";}
else if($date == "15/08/$y")
 {$praznic ="Днес е Успение на Пресвета Богородица!";}
else if($date == "08/09/$y")
 {$praznic ="Днес е Рождество на Пресвета Богородица!";}
else if($date == "14/09/$y")
 {$praznic ="Днес е Въздвижение на Св.Кръст(Кръстовден)!";}
else if($date == "19/10/$y")
 {$praznic ="Днес е Преп.Йоан Рилски Чудотворец!";}
else if($date == "26/10/$y")
 {$praznic ="Днес е Св.вмчк.Димитрий(Димитровден)!";}
else if($date == "08/11/$y")
 {$praznic ="Днес е Събор на архангел Михаил(Архангеловден)!";}
else if($date == "21/11/$y")
 {$praznic ="Днес е Въведение Богородично !";}
else if($date == "06/12/$y")
 {$praznic ="Днес е Св.Николай Мирликийски(Никулден)!";}
else if($date == "25/12/$y")
 {$praznic ="Днес е Рождество Христово!";}
else if($date == "26/12/$y")
 {$praznic ="Събор на Пресвета Богородица!";}
 if($date == "27/12/$y")
 {$praznic ="Днес е Св.първомъченик и архидякон Стефан(Стефановден)!";}
echo ("<center><h3>$praznic</h3>");
?>

Това е кода надявам се да ви е полезен.

Този календар ще е точен до 2100 година ::D до тогава разликата между Григорианския и Юлианския календар ще е 13 дни след това просто трябва да се промени $cons = 13;

За въпроси може да ми пишете ЛС

Скрипта е писан специално за http://web-tourist.net !!!

Урока е авторски забранявам преписването му в други сайтове без мое позволение!
 

Back
Горе