时间转换:以AM / PM小时格式给定时间,将其转换为军事(24小时)时间

这是一个黑客等级问题。要求是通过更改给定的12小时时间格式字符串并以更新的军事时间格式返回新的字符串来完成时间转换功能。我通过了大多数情况,但不是全部,我不知道为什么。这是当前代码,谢谢!

#include <bits/stdc++.h>

using namespace std;


string timeConversion(string s) {
   int h1 = (int)s[1] - '0'; 
    int h2 = (int)s[0] - '0'; 
    int hh = (h2 * 10 + h1 % 10); 
    string newString;

    // If time is in "AM" 
    if (s[8] == 'A') 
    { 
        if (hh == 12) 
        { 
            newString= "00:";
            newString.append(s,3,6); 

        } 
        else
        { 
            newString.append(s,0,6);
        } 
    } else{
        if(hh==12){
            newString=="12:";
            newString.append(s,3,6);
        }else{
            hh=hh+12;
            newString= to_string(hh);
            newString.append(s,2,6);
        }
    }
return newString;
}
int main()
{
    ofstream fout(getenv("OUTPUT_PATH"));

    string s;
    getline(cin, s);

    string result = timeConversion(s);

    fout << result << "\n";

    fout.close();

    return 0;
}