Keskustelu mallineesta:Qvaih

Kotivalosta
Versio hetkellä 6. tammikuuta 2025 kello 07.59 – tehnyt Np (keskustelu | muokkaukset)
Siirry navigaatioon Siirry hakuun

Kotivalon kuiden vaiheiden laskenta. {{1}} = vuosi, {{2}} = kuukausi, {{3}} = päivä.

Daran ja Mang olivat molemmat täysiä 13.1.4564. Vuodessa on 357 päivää. Daranin kiertonopeus on 31 päivää ja Mangin 29.

On yksinkertaisinta laskea kuiden vaiheiden vuosikohtaiset päivät muualla ja panna ne muuttujiin.

Kummankin kuun vaiheille lienee joku yhden rivin laskukaava kun otetaan vuosi, kuukausi ja päivä. Wikin matematiikkafunktiot eivät ehkä riitä mutta php:llä ne saisi. Alla on huono "brute force" -ratkaisu.


<?php
//Kotivalon kuiden vaiheiden laskenta.
//Daran ja Mang olivat molemmat täysiä 13.1.4564.
//Vuodessa on 357 päivää. Daranin kiertonopeus on 31 päivää ja Mangin 29.

function kuuhullu() {
    global $daran, $mang, $dd, $kk;

    //Täysi
    if ($daran==31) { echo '{{#ifexpr:{{{2}}}='.$kk.' and {{{3}}}='.$dd.'|<span style="color:#606060">🞅</span>}}'; $daran = 0; }
    if ($mang==29) { echo '{{#ifexpr:{{{2}}}='.$kk.' and {{{3}}}='.$dd.'|<span style="color:#e00000">🞅</span>|}}'; $mang = 0; }

    //Viimeinen neljännes
    if ($kk%2!=0) $dmod=7; else $dmod=8;
    if ($daran==$dmod) echo '{{#ifexpr:{{{2}}}='.$kk.' and {{{3}}}='.$dd.'|<span style="color:#606060">◑</span>}}';
    if ($kk%2!=0) $dmod=7; else $dmod=8;
 //   if ($mang==$dmod) echo '{{#ifexpr:{{{2}}}='.$kk.' and {{{3}}}='.$dd.'|<span style="color:#e00000">◑</span>|}}';

    //Uusi
    if ($kk%2!=0) $dmod=15; else $dmod=16;
    if ($daran==$dmod) echo '{{#ifexpr:{{{2}}}='.$kk.' and {{{3}}}='.$dd.'|<span style="color:#606060">◍</span>}}';
    if ($kk%2!=0) $dmod=14; else $dmod=15;
    if ($mang==$dmod) echo '{{#ifexpr:{{{2}}}='.$kk.' and {{{3}}}='.$dd.'|<span style="color:#e00000">◍</span>|}}';


    //1. Neljännes
    if ($kk%2!=0) $dmod=31-8; else $dmod=31-9;
    if ($daran==$dmod) echo '{{#ifexpr:{{{2}}}='.$kk.' and {{{3}}}='.$dd.'|<span style="color:#606060">◐</span>}}';
    if ($kk%2!=0) $dmod=29-7; else $dmod=21-8;
    if ($mang==$dmod) echo '{{#ifexpr:{{{2}}}='.$kk.' and {{{3}}}='.$dd.'|<span style="color:#e00000">◐</span>|}}';
}

//Vuosi 4564:
$dd = 1;
$daran = (31-12);
$mang = (29-12);

//Vuosi 4565:
//$daran=29;
//$mang=22;

for ($kk=1;$kk<4;$kk++) {
  for ($dd=1;$dd<30;$dd++) {
    kuuhullu($daran,$mang,$dd,$kk);
    $daran++; $mang++;
  }
}
for ($kk=4;$kk<9;$kk++) {
  for ($dd=1;$dd<31;$dd++) {
    kuuhullu($daran,$mang,$dd,$kk);
    $daran++; $mang++;
  }
}
for ($kk=9;$kk<13;$kk++) {
  for ($dd=1;$dd<30;$dd++) {
    kuuhullu($daran,$mang,$dd,$kk);
    $daran++; $mang++;
  }
}
//Jumalkuu
for ($dd=1;$dd<30;$dd++) {
  kuuhullu($daran,$mang,$dd,$kk);
  $daran++; $mang++;
}
echo "\n";
echo $daran."\n";
echo $mang."\n";