← Uz sākumu

Svētki

2003. gada 16. jūnijā, 9 komentāri

Gribējās jau kā labāk — uztaisīt arī neregulāros svētkus iekš kalendāra (piem., Lieldienas). Un pie tām pašām Lieldienām arī atsēdos.

Lieldienas - pirmā piektdiena, svētdiena un pirmdiena pavasarī pēc pilnmēness iestāšanās.

Dokuments teitan (Word dokumentiņš).

Un ibitīt matos, ko man tagad — iekš SPP ieviest arīdzan mēness fāžu rēķināšanu (nekas sarežģīts), kā arī meklēt, pēc kādiem kritērijiem tiek noteikts, kurā datumā sākas kurš gadalaiks? Jebšu arī reizi gadā manuāli to visu ierakstīt? :P

Risinājums tika kā reizi atrasts vienkāršs. Paņemam kodu no komentāriem funkcijai easter_date() un aidā.

Kā arī, vasarsvētki mums ir 49. un 50. diena pēc Lieldienām (svētdiena un pirmdiena).

Un vēl drošāk ir pārrakstīt iekš PHP izmantoto C koda gabalu iekš to PHP.

function lieldienas ($year) {
   $golden = $solar = $lunar = $pfm = $dom = $tmp = $easter = 0;
 
   $golden = $year % 19 + 1;
   if ($year <= 1752) {
     /* JULIAN CALENDAR */
     /* the "Dominical number" - finding a Sunday */
     $dom = ($year + ($year / 4) + 5) % 7;
     if ($dom < 0)
       $dom += 7;
     /* uncorrected date of the Paschal full moon */
     $pfm = (4 - (11 * $golden) - 7) % 30;
     if ($pfm < 0)
       $pfm += 30;
   } else {
     /* GREGORIAN CALENDAR */
     /* the "Dominical number" - finding a Sunday */
     $dom = ($year + ($year / 4) - ($year / 100) + ($year / 400)) % 7;
     if ($dom < 0)
       $dom += 7;
     /* the solar and lunar corrections */
       $solar = ($year - 1600) / 100 - ($year - 1600) / 400;
       $lunar = ((($year - 1400) / 100) * 8) / 25;
     /* uncorrected date of the Paschal full moon */
       $pfm = (3 - (11 * $golden) + $solar - $lunar) % 30;
       if ($pfm < 0)
       $pfm += 30;
   }
   /* corrected date of the Paschal full moon - days after 21st March */
   if (($pfm == 29) || ($pfm == 28 && $golden > 11))
     $pfm--;
   
   $tmp = (4 - $pfm - $dom) % 7;
   if ($tmp < 0)
     $tmp += 7;
   
   /* Easter as the number of days after 21st March */
   $easter = $pfm + $tmp + 1;
   
   if ($easter < 11) {
     $easter += 21;
     return(strtotime($year.'-03-'.$easter));
   } else {
     $easter -= 10;
     return(strtotime($year.'-04-'.$easter));
   }
 }

Tu atbildi augstāk redzamajam komentāram. Atcelt

Gravatar Smejmoon

2003. gada 16. jūnijā, plkst. 16:15

jaa un tad veel mums te ir vairaakas legaalaas konfesijas ..

xpucmoc :P

Gravatar K|NG

2003. gada 16. jūnijā, plkst. 17:14

tnx laacz par linciņiem! izrādās, ka biju skatījies viskaukur citur, bet ne tur :) tagad zinu kā iegūt cik dotajā mēnesī ira dienas http://paste.php.lv/166 atliek izdomāt kā to visu saštellēt uzzināt "pirmo" dienu un "pēdējo" ... es te tikai skaļi domāju, jo negribas jau kalendāri sākot ar svētdienu, gribas ar pirmdienu... :)

Gravatar laacz

2003. gada 16. jūnijā, plkst. 17:21

Nu bet tas takš elementāri...

// $fday = mktime(0, 0, 1, $m, 1, $y); $lday = mktime(0, 0, 1, $m+1, 0, $y); //

Gravatar misame

2003. gada 16. jūnijā, plkst. 19:58

King, savu pēdējo dienu diez vai ar PHP izrēķināsi ;)))

Gravatar K|NG

2003. gada 16. jūnijā, plkst. 20:22

misame, es nimaz negribētu tādu PHP kodu :)

Gravatar urmas

2003. gada 16. jūnijā, plkst. 23:20

ko man dariit lai man neliktos slash \ kad raxtu peedinjas " tjip man pa webu kad submito shameejais \ kaukaada veidaa pieliekaas priekshaa gan peedinjaam " gan apostrofiem '

Gravatar hu ha

2003. gada 17. jūnijā, plkst. 00:38

2 urmas: tas saucas php un vinjsh taa dara - palasi php manuaaljus...

Gravatar bx

2003. gada 17. jūnijā, plkst. 01:35

Urmas: slashi liekas priekshaa peedinjaam un apostrofiem no textarea. Prieksh tam ir funkcija stripslashes()(http://lv.php.net/manual/en/function.stripslashes.php)