骗子的把戏之三--如何编写高效的润年判断函数(100分)

  • 主题发起人 主题发起人 Ary
  • 开始时间 开始时间
A

Ary

Unregistered / Unconfirmed
GUEST, unregistred user!
骗子的把戏之二请看
http://www.csdn.net/expert/topic/1063/1063627.xml?temp=.6383325
没想到这么快就被老猫搞定了!!!
现在请你帮我写一个高效的润年判断函数?谢谢了。
要求写出代码,当然言论自由,不过灌水无分。
 
function IsLeapYear(Year: Word): Boolean;
begin
Result := (Year mod 4 = 0) and ((Year mod 100 <> 0) or (Year mod 400 = 0));
end;
 
如果是应用软件的话,列出50年内的润年就行了。
你的应用软件能用20年就不错了。
 
if ((year mod 4 = 0) and (year mod 100 <> 0) or (year mod 400 = 0)) then

LastDays := 29
else

LastDays :=28;
 
实际上应该用汇编来获得高效率,毕竟C/C++的效率只有汇编的70%。
汇编编程思想:
除以4后判断余数,非零直接跳转"返回非润年"地址
用剩下的商除以25判断余数,非零直接跳转"返回润年"地址
用剩下的商除以4判断余数,非零直接跳转"返回润年"地址,否则跳转"返回非润年"地址
 
cx139兄那个就是delphi6带的源程序里的
 
Delphi7中Dateutils中有好多日期函数
自已去找下吧
 
后退
顶部