首页 > 解决方案 > 仅显示可被 5 整除的分钟数

问题描述

我试图仅以可被 5 整除的分钟数显示时间(即:1:00、2:05、3:45 等)

虽然当我输出时间时,我得到 10:00、10:01、10:02、10:03 和 10:04。从来没有 10:05。分钟总是在 0 到 4 之间。

小时和分钟是独立的 Int 的

我究竟做错了什么?

     public string TimeAsText {
         get {
              return Hours.ToString().PadLeft(2, '0') + ":" + (Minutes % 5).ToString().PadLeft(2, '0');
         }
     }

标签: c#

解决方案


模运算符 ('%') 返回除法的余数。你不想要剩下的。您想使用余数来确定您的输出。

// 未经测试的长版本

if(Minutes % 5 == 0) // IE. minutes is evenly divisible by 5
{
   return Hours.ToString().PadLeft(2, '0') + ":" + Minutes.ToString().PadLeft(2, '0');
}

// 未经测试的短版本

return Hours.ToString().PadLeft(2, '0') + ":" + (Minutes % 5 == 0) ? Minutes.ToString().PadLeft(2, '0') : "00";

推荐阅读