我有一些C ++代码:
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<script language="C#" runat="server">
public void Ajouter(Object sender, EventArgs e)
{
ViewData["name"] = dateForm.Text;
ViewData["date"] = dateForm.Text;
ViewData["user"] = userForm.Text;
}
</script>
<!DOCTYPE html>
<html>
<head id="Head1" runat="server">
<meta name="viewport" content="width=device-width" />
<title>AjouterForm</title>
</head>
<body>
<h1>Ajouter un produit</h1>
<div>
<form id="form1" runat="server" action="Consulter" defaultbutton="bouton1" method="get">
<div>
<asp:TextBox placeholder="Name" runat="server" ID="nameForm"/></br>
<asp:TextBox placeholder="Date" runat="server" ID="dateForm"/></br>
<asp:TextBox placeholder="User" runat="server" ID="userForm"/></br>
<asp:Button runat="server" text="Envoyer" ID="bouton1" onClick="Ajouter"/>
<asp:Label runat="server" ID="label1" />
</div>
</form>
</div>
</body>
</html>
我知道is_valid_date函数有效,但是当我测试 之后<=>当天输入的生日时,由于某种原因,它通过了is_before测试并且从未进入while循环要求用户输入有效的生日。任何建议将不胜感激!提前谢谢!
编辑:我测试的具体输入是:对于今天的日期,我输入05/06/2015,对于生日,我输入05/07/2015。然后打印生日,这意味着它跳过int main()中的while循环,它不应该这样做,因为生日来自当前日期之后。
答案 0 :(得分:0)
你的情况错了:
while(!valid && !before)
如果输入的内容无效且位于当前日期之后,您的情况将尝试获得新生日。我想你想要:
while(!valid || !before)
如果输入的内容无效或在当前日期之后,则会有新的生日。
答案 1 :(得分:0)
您应该将while(!valid && !before)
更改为while(!valid || !before)
。
只要出生日期无效或出生日期在当前日期之后,您就想留在循环中。目前,如果您输入的是当前日期之后的有效日期,它将跳出循环,因为第一个条件为假(日期有效)。