function mystery($y, $m, $d) {
$a = 0;
$b = 0;
$c = 0;
if($m < 3) {
$a = $m + 10;
$b = ($y-1) % 100;
$c = ($y-1) / 100;
}
else {
$a = $m - 2;
$b = $y % 100;
$c = $y / 100;
}
$w = (700 + (((26*$a)-2)/10)+$d+$b+$b/4+$c/4-(2*$c))%7;
echo $w;
}
我的教程问题之一是询问函数计算的内容。我可以通读并解释每一个计算,但我确信这不是我们期望做的。是否有任何我没有看到的明显用途?
在我看来它可能是一种校验和算法,因为它似乎总是生成 0 到 6 之间的数字。
ps,它最初是用 Java 编写的,但为了简单起见,当我将它输入计算机进行测试时,我将它移植到了 PHP。如果有人愿意,我可以重新输入 Java 版本。
最佳答案
想想日期和马塞洛发布的内容。这是可编译的java。尝试使用各种输入运行该程序,看看您会得到什么。
class mys {
public static void main(String[] args) {
int y= Integer.parseInt(args[0]);
int m= Integer.parseInt(args[1]);
int d = Integer.parseInt(args[2]);
int a = 0;
int b = 0;
int c = 0;
if(m < 3) {
a = m + 10;
b = (y-1) % 100;
c = (y-1) / 100;
}
else {
a = m - 2;
b = y % 100;
c = y / 100;
}
int w = (700 + (((26*a)-2)/10)+d+b+b/4+c/4-(2*c))%7;
System.out.println(w);
}
}
关于php - 这段代码有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4007813/