将函数转换为Classic ASP

时间:2012-07-02 02:56:46

标签: date asp-classic

我正在使用邮件列表程序,该程序将日期插入到#34;编码的#34;所以用户无法对其进行更改或编辑。

格式描述如下:

  

八个字符的字符串AABBCCDD,,其中:

     
      
  • 年= 1980 + HexToInt(BB) / 3
  •   
  • 月= HexToInt(CC) / 7 - 21
  •   
  • 日= HexToInt(DD) / 7 - 5
  •   
     

还包括校验和以避免随意修改:

     

AA = IntToHex(Year + Month + Day mod 200)

     

例如2660BDAF会引用20 June, 2012


您能帮助我将以下内容转换为Classic ASP:

CodedDateStr = Request.querystring("Exp")
AYear = 1980 + HexToInt(CodedDateStr[3] + CodedDateStr[4]) / 3
AMonth =  HexToInt(CodedDateStr[5] + CodedDateStr[6]) / 7 - 21
ADay =  HexToInt(CodedDateStr[7] + CodedDateStr[8]) / 7 - 5
ACheckSum = AYear + AMonth + ADay mod 200

if ACheckSum <> HexToInt(CodedDateStr[1] + CodedDateStr[2]) then
  ValidDate = 0
else
  ValidDate = 1
end if

AExpiryDate = EncodeDate(ADay, AMonth, AYear)

if Date() > AExpiryDate then
  ExpiredOffer = 1
else
  ExpiredOffer = 0
end if

....

HexToInt等价物似乎是clng("&h" & hexnumber)

我不确定EncodeDate,我希望它不像CDate(AMonth + "/" + ADay + "/" + AYear)

那样狡猾

1 个答案:

答案 0 :(得分:1)

CLng("&h" & hexnumber)看起来是HexToInt的好方法。

对于EncodeDate,请查看DateSerial函数,该函数需要一年,一个月和一天,并返回日期值。