paiza Cランクレッベルアップメニュー「文字列 PHP編」FINAL問題

解答例を置いておきます。
ランクC相当にしては、なかなかやることが多い問題でした。

<?php
    // 自分の得意な言語で
    // Let's チャレンジ!!

    $num = trim(fgets(STDIN));//工事数を取得
    
    for ($i = 0; $i < $num; $i++) {
        $s = explode(" ",trim(fgets(STDIN)));
        
        $str = $s[0];//工事開始時刻(文字列)
        $hour = $s[1];//工事時間(時)
        $minute = $s[2];//工事時間(分)
        
        //工事開始時刻(文字列)より、時間、分を取得する
        $start_hour = mb_substr($str,0,2);
        $start_minute = mb_substr($str,3,2);
        
        //echo($start_hour.",".$start_minute."\n");
        
        //すべて分単位に変換して計算
        $start = $start_hour*60 + $start_minute;
        $construction_time = $hour*60 + $minute;//工事時間(分単位)
        
        $end_time = $start+$construction_time;
        //echo($end_time);
        
        //時、分に再変換する
        $end_hour = floor($end_time/60);
        $end_minute = $end_time%60;
        
        //24時以上なら
        if($end_hour >= 24){
            $end_hour = $end_hour-24;
        }
        
        //0とかの場合00にする
        if(mb_strlen($end_hour)==1){
            $end_hour = "0".$end_hour;
        }
        if(mb_strlen($end_minute)==1){
            $end_minute = "0".$end_minute;
        }
         
        
        //出力
        echo($end_hour.":".$end_minute."\n");
    }

?>

paiza Cランクレベルアップメニュー php編

https://paiza.jp/works/mondai/c_rank_level_up_problems/problem_index?language_uid=php
1+