Java(jdk1.6) 取模
这里需要对long型的数值进行取模,但是project中用的jdk1.6版本,不支持Math.floorMod(jdk1.8支持)方法,所以直接写了一个取模的方法,供大家参考。
/**
* Long数值取模
*/
public class Date {
/**
* 取模
* @param x 股息
* @param y 除数
* @return
*/
public static long floor_Mod(final long x, final long y) {
return x - floor_Div(x, y) * y;
}
/**
* 返回小于或等于商的整数(返回最接近零的整数)。
* 说明:计算商值向负无穷方向舍弃小数位
* @param x 股息
* @param y 除数
* @return
*/
public static long floor_Div(final long x, final long y) {
long r = x / y;
if ((x ^ y) < 0L && r * y != x) {
--r;
}
return r;
}
public static void main(String[] args) {
Long x = 20200217133256123L;
int y = 18;
System.out.println("JDK1.8直接取模:"+Math.floorMod(x, y));
System.out.println("JDK1.6手写取模:"+floor_Mod(x, y));
}
}
运行结果如下所示: