我必須計算一天中第一次出現的時間。
輸入格式類似12:48 AM。比較12小時的格式時間
這是我的比較功能。
string timeCompare(string t1, string t2)
{
if(t1[5] == 'A' && t1[6]== 'M' && t2[5]=='P')
{
return "First";
}
else if (t2[5] == 'A' && t2[6] == 'M' && t1[5]=='P')
{
return "Second";
}
else if (t2[5] == 'A' && t2[6] == 'M' && t1[5]=='A' && t1[6]=='M')
{
if(stoi(t1)<stoi(t2))
{
return "First";
}
else if(stoi(t2) == stoi(t1))
{
if(t2[3] > t2[3])
{
return "Second";
}
else if(t2[3] < t1[3])
{
return "First";
}
else if(t2[3] == t1[3])
{
if(t2[4] > t1[4])
{
return "First";
}
if(t1[4] > t2[4])
{
return "First";
}
else
{
return "Equal";
}
}
}
}
return 0;
}
此代碼是通用的,並提供所有時間的正確輸出。 但是由於這段代碼非常冗長,並且包含大量的比較,無論如何我可以縮短這段代碼嗎?
請正確格式化您的代碼。另請注意,有關改進*工作代碼*的問題屬於http://codereview.stackexchange.com。 –
使用實際時間類型(其中包含用於比較的運算符)並保存字符串表示以僅顯示會更好。此外,你的字符串返回值是容易出錯的,例如返回0;最後。如果你使用字符串,至少爲「First」定義常量,等等。 –
你確定這給出了「所有時間的正確輸出」嗎?兩次不同的PM時間呢?或者當只有一個時間有12個小時,他們都是AM? – Dmitri