如何根据两位数开始年份计算当前学年?

问题描述:

我正在学校的一个web项目上工作,我需要知道他/她的唯一注册号码是哪一年特定的学生。如何根据两位数开始年份计算当前学年?

注册号看起来像UXXEEXXXX,其中前两个XX的代表用户加入了学校的一年中的最后两位数字,EEX代表的部门,过去三年XXX的代表的序列号学生根据他何时注册的时间。

例如,在U08EE1117U代表本科,08说,用户在2008年加入了学校,EE1表示部门和1还表示,用户从第一年开始,和117意味着用户是第117位学生在部门注册。

我想用PHP来获得用户的当前级别,第一年为100级,第二年为200级,最后一年的学生为500级。

我所做的是这样的:

$yr = ((integer)substr($_SESSION["username"], 1,2));  
$cur = substr(date("Y"), 2, 3); 
$level = $cur - $yr; 

其中$_SESSION["username"]是注册号。

但我注意到这很多年来都不起作用。我想知道最简单的方法来解决这个问题。 (注册号码仅在100年内有效。)

我想说你已经有了一个好的开始。所有你需要做的是将100至差固定缠绕的问题,如果是负:

$yr = substr($_SESSION["username"], 1, 2);  
$cur = date("y"); // two-digit year 
$diff = $cur - $yr; 
if ($diff < 0) $diff += 100; 

这给出了历年的数量,因为学生开始,你也许会需要添加一个,如果目前的学年已经开始。然后,乘以100以获得您指定的级别。

+0

是的,这比我放的答案更好! – craig1231 2013-04-24 22:54:13

+0

啊,我现在看到,我明白了,像1999年和2001年那样,正常的减法给出了负值(即-2),加上100给出了2,因此用户处于200级别,作品感谢 – 2013-04-24 23:15:07