我正在尝试将数字向下舍入到最近的15,20,30。即
726到最接近的30是700
714到最近的15是700 等VBScript代码将非常有用,但伪代码也将是一个巨大的帮助!
编辑:抱歉,我忘了说,726真的是一个表达为int的时间,即07:26。所以这应该是07:00,而不是690
再次编辑:我只是提取分钟并使用人们已回答的代码。希望这也会帮助其他人。谢谢!
由于
答案 0 :(得分:3)
伪代码:
diff = num mod nearest
return num - diff
所以726 mod 30 = 6
726 - 6 = 720
的VBScript:
Function GetNearest(num, nearest)
Dim diff = num mod nearest
GetNearest = num - diff
End Function
答案 1 :(得分:1)
您在代码中列出了一堆语言。我将使用C#,但是更通用的算法:
int n = 726;
int q = 30;
int r = Math.Floor(n / q) * q;
答案 2 :(得分:1)
另一种方法是使用整数除法:726/30 * 30 = 720