[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 04/04 01:09 / Filesize : 256 KB / Number-of Response : 807
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Perlについての質問箱 41箱目



463 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 14:12:39 ]
DateTimeで処理する方がいいんじゃないかな?
@dts作る時にmap使いたかったんだけど、あり得ない日付の時のこと考えるとundef入っちゃうからできなかった
use strict; use warnings;
use utf8;
use DateTime;
use DateTime::Format::Strptime;

my @date = qw( 23-001-2009 25-001-2009 26-001-2009 28-001-2009 29-001-2009 30-001-2009 01-002-2009 03-002-2010 30-002-2010 31-002-2010 );
my $pattern = '%d-0%m-%Y';
my $fmt = DateTime::Format::Strptime->new( pattern => $pattern, time_zone => 'Asia/Tokyo', );
my @dts;
for (@date) {
  my $dt = $fmt->parse_datetime($_);
  push @dts, $dt if $dt;
}
my @res_dts;
my $pre_dt;
for my $i (0 .. $#dts) {
  my $dt = $dts[$i];

  if ($i != 0) {
    my $duration = $dt - $pre_dt;
    if ( ($duration->delta_days == 1) && ($duration->delta_months == 0) ) {
      push @res_dts, $pre_dt->day . "〜" . $dt->strftime($pattern);
    }
    else {
      push @res_dts, $pre_dt->strftime($pattern) . "," . $dt->strftime($pattern);
    }
  }
  $pre_dt = $dt;
}
warn join "\n", @res_dts;






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<256KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef