TOP ▲ itcore TOP プログラムパーツ

uDateMonthCalc 年月に月数を足す(マイナスを入れれば引く) uDateMonthCalc(201712, 2) => 201802 | itcore 2017年

PHP

PHP TOP

関数

<?php
// 年月に月数を足す(マイナスを入れれば引く) uDateMonthCalc(201712, 2) => 201802
function uDateMonthCalc($yyyymm1, $mm2) {
  $yyyy1 = substr($yyyymm1, 0, 4);
  $mm1 = substr($yyyymm1, 4, 2);
  if (0 == $mm2) return $yyyymm1;
  if (0 < $mm2) {
    for ($i = 0; $i < $mm2; $i++) {
      $mm1++;
      if (13 == $mm1) {
        $yyyy1++;
        $mm1 = 1;
      }
    }
  } else {
    for ($i = 0; $i > $mm2; $i--) {
      $mm1--;
      if (0 == $mm1) {
        $yyyy1--;
        $mm1 = 12;
      }
    }
  }
  return ($yyyy1 * 100 + $mm1);
}
?>

テスト

<?php include "uDateMonthCalc.func"; ?>
<?php
$yyyymm=201712; $mm=2;$ret=uDateMonthCalc($yyyymm, $mm); echo "yyyymm=$yyyymm mm=$mm ret=$ret<br>\n";
$yyyymm=201801; $mm=-25;$ret=uDateMonthCalc($yyyymm, $mm); echo "yyyymm=$yyyymm mm=$mm ret=$ret<br>\n";

?>

実行結果

yyyymm=201712 mm=2 ret=201802
yyyymm=201801 mm=-25 ret=201512