• ベストアンサー

日付で0を抜く

日付が0123(1月23日)の形式で$startに保存されています。 これの0を抜く方法をシンプルにしたいと思ってます。 現在こんなかんじです。 ##月日を作る @date = $start =~ m/.{2}/g; $mons = @date[0]; $days = @date[1]; if($mons < 10){$mons = sprintf("%01d",$mons);} if($days < 10){$days = sprintf("%01d",$days);} print "$mons月$days日\n"; 正解ってのはないんでしょうけど、これ以上にシンプルにする方法はありますか?これでOKと言うのなら、それでも構いません。 何か良い方法があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.2

@date[0] ではなく、$date[0] だと思いますが、 --- @date = $start =~ m/.{2}/g; $mons = $date[0] + 0; $days = $date[1] + 0; print "$mons月$days日\n"; --- とか

その他の回答 (4)

  • okmotokun
  • ベストアンサー率59% (92/155)
回答No.5

No.4です。間違えました。(質問をよく読んでから答えなきゃだめじゃん!) printf("%1d月%1d日",substr($start,0,2),substr($start,2)."\n"; ですね。

  • okmotokun
  • ベストアンサー率59% (92/155)
回答No.4

No.3です。間違えました。 printf("%1d月%1d日",$date[0],$date[1])."\n"; ですね。

  • okmotokun
  • ベストアンサー率59% (92/155)
回答No.3

if($mons < 10){$mons = sprintf("%01d",$mons);} if($days < 10){$days = sprintf("%01d",$days);} 何でわざわざ 0 を付けてから消すんですか? printf("%1d月%1d日",$mons,$days); でいいんじゃないですか。

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

方法はいろいろあると思うけど /^0// で置換するとかどお?

関連するQ&A