グレゴリオ暦またはB%#; FAME%:! この日付で!

くそー、この日付ですべてがどのように複雑なのですか、なぜ私たちは毎年365日あるのですか? 毎年、正確に8760時間がないのはなぜですか? なぜ毎年31536000秒を正確に持っていないのですか??



これらの数字でどのように疲れていますか。

たぶん誰かが解決策を知っていますか?



タスクは次のとおりです。通常の通常の日付があります:2006年7月28日。 (2006年7月28日)。 「X年XX月XX日」という形式で印刷する必要があります。その月と年の現在の日付が計算されます。 それは(たとえば日付):



最初の日付:2006年7月28日

現在の日付:2007年7月28日

結果:1年



最初の日付:2006年7月28日

現在の日付:2008年1月28日

結果:1年6か月



最初の日付:2006年7月28日

現在の日付:2008年7月28日

結果:2年



最初の日付:07.28.2006

現在の日付:2008年8月30日

結果:2年1か月2日





2月の愚かさ(これらのうるう年に耐えられなかった場合)により、すべてが順調です、すべては順調です。明るい頭。



日付カウントコード自体:

function pf($n, $form1, $form2, $form5) {

$n = abs($n) % 100;

$n1 = $n % 10;

if ($n > 10 && $n < 20) return $form5;

if ($n1 > 1 && $n1 < 5) return $form2;

if ($n1 == 1) return $form1;

return $form5;

}



$mktime = mktime(0,0,0,7,28,2006);

$nowTime = mktime(0,0,0,7,28,2007); //time();



// CheckGregorian



$y = date("Y",$nowTime);

$minus = 0;



if(!checkdate(2,29,$y)) $minus = 86400;



$mSec = $nowTime - $mktime - $minus;

$yDay = 365 * 86400;



$year = ($mSec - ($mSec % $yDay)) / $yDay; //31557600

$mSec = $mSec - ($year * $yDay);

$month = ($mSec - ($mSec % 2629800)) / 2629800;

$mSec = $mSec - ($month * 2629800);

$day = ($mSec - ($mSec % 86400)) / 86400;



if($year != 0) echo " $year ".pf($year,"","","");

if($month != 0) echo " $month ".pf($month,"","","");

if($day != 0) echo " $day ".pf($day,"","","");







Plzは私をマイナスしないでください。 誰もが見たいトピックは欲しくない これはトピックではなく、ヘルプデスクです。 あなたが本当にそのような問題に遭遇し、解決策を知っている人、助けてください。



更新:誰かがそれを必要とするなら、答えはru_phpで私に促しました。 作業スクリプト。 もちろん、これは私が望んでいたものではありません、つまり 私は自分自身を改良し、解析し、誰かの既製のスクリプトを使用したくなかった。 しかし、それでも動作します。

リンク: ru_php /コメント



All Articles