如果/ else语句

时间:2016-06-06 15:40:16

标签: if-statement vbscript asp-classic

我是一位相对较新的网络开发者,他最近继承了一个客户网站,其中包含以下代码:

<%
    If objDbRs("Accred_Date") <> "" Then
    dim dateAcc, dateAccEnd
    dateAcc = formatDateTime(objDbRs("Accred_Date"),vbshortdate)
    dateAccEnd = DateAdd("yyyy",5,dateAcc)

    Response.write dateAcc & " to " & dateAccEnd
Else
    Response.write "<em>Accreditation information not available.</em>"
End If
%>

它只显示给定的个人资料的注册日期和5年后编码的到期日期。客户已要求我的公司将此自动到期日期更改为3年后,而不是5年。但是,这应该只会影响2016年6月1日或之后添加的配置文件,从而使所有旧配置文件都为5年。

我不是立即熟悉此代码或其语法,并希望在解决此问题时获得一些帮助。如果有人能告诉我为实现这一目标需要进行哪些代码调整并为该语言提供有用的语法参考源,以便我以后能够更好地处理类似的客户请求,我非常感激。

1 个答案:

答案 0 :(得分:1)

这应该按照你的要求进行,但是值得尝试理解这里的修改如何改变上面的代码来做你所要求的。

&#xA;&#xA;
 &lt;%&#xA; Dim dateAcc:dateAcc = objDbRs(”Accred_Date“)&amp; “”&#xA; Dim dateAccEnd,NumOfYears&#xA;&#xA; if dateAcc&lt;&gt; “然后&#xA; dateAcc = CDate(dateAcc)&#xA; '检查帐户是否在2016年6月1日/之后创建&#xA; '相应地设定NumOfYears的值。&#xA;如果dateAcc&gt; = DateSerial(2016,6,1)那么&#xA; NumOfYears = 3&#xA;否则&#XA; NumOfYears = 5&#xA;结束如果&#xA; '根据NumofYears到结束日期添加年数。&#xA; dateAccEnd = DateAdd(“yyyy”,NumOfYears,dateAcc)&#xA; '检查后,只有字符串格式化日期。&#xA; dateAcc = FormatDateTime(dateAcc,vbShortDate)&#xA; dateEnd = FormatDateTime(dateEnd,vbShortDate)&#xA; Response.write dateAcc&amp; “到”&amp; dateAccEnd&#XA;否则&#XA; Response.write“&lt; em&gt;认证信息不可用。&lt; / em&gt;”&#xA;结束如果&#xA;%&gt;&#xA;  
&#xA;&#xA ;

帐户到期由此行控制

&#xA;&#xA;
  dateAccEnd = DateAdd(“yyyy”,NumOfYears ,dateAcc)&#xA;  
&#xA;&#xA;

通过替换硬编码值5,我们可以传递变量 NumOfYears 是根据帐户是在2016年6月1日或之后创建的(使用 DateSerial()来获取,其中包含一系列数值的日期,年,月,日)

&#xA;&#xA;

有更好的方法来构建这个,但希望现在保持简单。例如,硬编码 DateSerial(2016,6,1)是一个坏主意,使管理代码变得更加麻烦,理想情况下应该从另一个源(配置,数据库等)传递)或至少存储为 Constant 值。

&#xA;&#xA;
&#xA;&#xA;

有用链接

&#xA;&#xA; &#XA;