检查字符串日期是否为星期一

时间:2020-01-31 18:32:06

标签: c# asp.net

我有一个带有文本框的表单,用户可以从日期选择器中选择该文本框并输入日期。我需要检查所选日期是否在星期一。

我当前的代码如下。

string dateInput = txtStartDate.Text;
DateTime dt = Convert.ToDateTime(dateInput);
DayOfWeek today = dt.DayOfWeek;

if (today != DayOfWeek.Monday)
{
    Console.WriteLine("Day is not a monday");
}

当我运行表单并选择不在星期一的日期时,不会显示任何消息。我不确定是否将其放在javascript或c#函数中,并且真的不确定代码是否正确。任何想法和评论都表示赞赏。

4 个答案:

答案 0 :(得分:1)

现在,有两种方法可以实现

  • 调用JS <Script>标签以显示警报
  • 创建自定义警报框并在代码中显示在后面

JavaScript警报

    using System;
    using System.Web.UI;

    public partial class CheckMonday : Page
    {
       protected void Page_Load(object sender, EventArgs e)
       {
         CheckDate("Invalid Date");
       }

        private void CheckDate(string message)
        {

          string dateInput = txtStartDate.Text;
          DateTime dt = Convert.ToDateTime(dateInput);
          DayOfWeek today = dt.DayOfWeek;

          if (today != DayOfWeek.Monday)
          {
            Response.Write("<script>alert('" + message + "')</script>");
          }
         }
     }

自定义AlertBox

<div runat="server" id="AlertBox" class="alertBox" Visible="false">
  <div runat="server" id="AlertBoxMessage"></div>
  <button onclick="closeAlert.call(this, event)">Ok</button>
</div>  
    using System;
    using System.Web.UI;

    public partial class CheckMonday : Page
    {
       protected void Page_Load(object sender, EventArgs e)
       {
         CheckDate("Invalid Date");
       }

        private void CheckDate(string message)
        {

          string dateInput = txtStartDate.Text;
          DateTime dt = Convert.ToDateTime(dateInput);
          DayOfWeek today = dt.DayOfWeek;

          if (today != DayOfWeek.Monday)
          {
             MessageBoxShow(message);
          }
         }

         private void MessageBoxShow(string message)
         {
           this.AlertBoxMessage.InnerText = message;
           this.AlertBox.Visible = true;
         }
     }

答案 1 :(得分:0)

我能够使用我的原始代码减去在文本更改时调用的函数中的writeline来处理此问题。我做了一个自动回发,然后使用一个隐藏的面板在其中保存了警告消息。如果验证不正确,它将取消隐藏面板并显示消息,或者将其隐藏。

不知道这是否是最佳选择,因此,如果其他任何人有更好或更干净的解决方案,我都可以尝试一下。感谢大家的建议。

答案 2 :(得分:-1)

将代码更改为:

string dateInput = txtStartDate.Text;
        DateTime dt = Convert.ToDateTime(dateInput);
        DayOfWeek today = dt.DayOfWeek;

        if (today != DayOfWeek.Monday)
        {
            MessageBox.Show("Day is not a monday");
        }

答案 3 :(得分:-1)

您可以尝试使用此代码

this.ShowMessage("Day is not a monday", "red");