paiza問題集より
問題集のコードは公開しても大丈夫なようなので。
「文字列 PHP編」FINAL問題 文字列
<?php
// 自分の得意な言語で
// Let's チャレンジ!!
$num = trim(fgets(STDIN));
for ($i = 0; $i < $num; $i++) {
$s = trim(fgets(STDIN));
$s = str_replace(array("\r\n","\r","\n"), '', $s);
$s = explode(" ", $s);
//echo "hello = ".$s[0]." , world = ".$s[1]." , world = ".$s[2]."\n";
$time = $s[0];
//$time = "23:00";
$add_hour = $s[1];
$add_minute = $s[2];
$hour = substr($time, 0, 2);
$minute = substr($time, 3, 2);
//echo($hour.",".$minute."\n");
$minute += $add_minute;
if($minute >= 60){
$minute -= 60;
$hour ++;
}
$hour += $add_hour;
if($hour >= 24){
$hour -= 24;
}
//二けたにする
if(mb_strlen($hour)<2){
$hour = "0".$hour;
}
if(mb_strlen($minute)<2){
$minute = "0".$minute;
}
echo($hour.":".$minute."\n");
}
?>
3回ぐらい引っかかってハテナになった問題です。
「先に」分であるminuteを処理して、60以上の値の時にhourを繰り上げておかないといけなかったんですね。
hourを先に処理していたので、そのあとがバグる結果になってしまっていました。
0