我只想显示时间,将分钟数除以5(即1:00、2:05、3:45等)。
尽管输出时间,但我得到的时间是10:00、10:01、10:02、10:03和10:04。永远不要10:05。并且分钟始终在0到4之间。
小时和分钟是独立的整数
我在做什么错了?
public string TimeAsText {
get {
return Hours.ToString().PadLeft(2, '0') + ":" + (Minutes % 5).ToString().PadLeft(2, '0');
}
}
答案 0 :(得分:3)
取模运算符('%')返回除法的余数。你不想剩下的。您想使用余数确定输出。
//未经测试的长版
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";
答案 1 :(得分:2)
因为foreach my $id (keys %$client) {
my @unique_srp_id;
@unique_srp_id = uniq($hash->{$id}->{str}->{TOKEN});
print @unique_srp_id;
}
sub uniq {
my %seen;
grep !$seen{$_}++, @_;
}
仅返回0、1、2、3、4。
如果您想得到5,则
(Minutes % 5)
或者,如果您想四舍五入,
public string TimeAsText {
get {
return Hours.ToString().PadLeft(2, '0') + ":" + ((Minutes / 5)*5).ToString().PadLeft(2, '0');
}
}