ループごとにnewしてたんだけどsetTimestamp()を使えばいいことにようやく気がついた。

サンプルコード

PHP
  1.  <?php
  2.  require_once('Calendar/Day.php');
  3.  
  4.  // forのたびにnewする
  5.  $year = 2009; $month = 12; $day = 28;
  6.  $xday = new Calendar_Day($year, $month, $day);
  7.  
  8.  for ($i=1; $i<11; $i++) {
  9.   printf('%s/%02d/%02d<br />', $xday->thisYear(), $xday->thisMonth(), $xday->thisDay());
  10.   $xday = new Calendar_Day($year, $month, $day + $i);
  11.   $xday->adjust();
  12.  }
  13.  
  14.  echo '<hr />';
  15.  
  16.  // setTimestamp()ですっきり
  17.  $year = 2009; $month = 12; $day = 28;
  18.  $oneday_minites = 24 * 60 * 60;
  19.  $xday = new Calendar_Day($year, $month, $day);
  20.  
  21.  for ($i=0; $i<10; $i++) {
  22.   printf('%s/%02d/%02d<br />', $xday->thisYear(), $xday->thisMonth(), $xday->thisDay());
  23.   $xday->setTimestamp($xday->getTimestamp() + $oneday_minites);
  24.  }
  25.  ?>

実行結果


Warning: require_once(Calendar/Day.php) [function.require-once]: failed to open stream: No such file or directory in /home/users/1/lolipop.jp-dp07173486/web/kantenna/view/pg/2009/12/pearcalendern.php on line 550

Fatal error: require_once() [function.require]: Failed opening required 'Calendar/Day.php' (include_path='.:/usr/local/php5.2/php:/home/users/1/lolipop.jp-dp07173486/web/CQT/Libs/:/home/users/1/lolipop.jp-dp07173486/web/CQT/Libs/PEAR/:/home/users/1/lolipop.jp-dp07173486/web/kantenna/lib/') in /home/users/1/lolipop.jp-dp07173486/web/kantenna/view/pg/2009/12/pearcalendern.php on line 550