asp.net+access 怎么在。cs页面里判断 “随便写个时间” 是否是本周?

解决方案 »

  1.   

      public static bool IsThisWeek(DateTime someDate)
            {
                DateTime dt = DateTime.Now;            DateTime nowMon = dt.AddDays(1 - Convert.ToInt32(dt.DayOfWeek.ToString("d"))); 
                
                TimeSpan ts = someDate - nowMon;            if (ts.Days >= 0 && ts.Days < 7)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
      

  2.   

    static bool isInCurrentWeekday(DateTime dt)
            {
                DateTime now = DateTime.Now;
                int st = now.Day - Convert.ToInt32(now.DayOfWeek.ToString("d")) + 1;
                if (dt.Day >= st && dt.Day <= st + 7)
                {
                    return true;
                }
                return false;
            }
      

  3.   

    我去写了下,方法有点笨,不过测试通过!
    期待更好的办法<div>
            <asp:TextBox ID="txtDateTime" runat="server"></asp:TextBox><asp:RequiredFieldValidator
                ID="valdDateTime" runat="server" ErrorMessage="不能为空" 
                ControlToValidate="txtDateTime" Display="Dynamic" Font-Size="12px"></asp:RequiredFieldValidator><asp:RegularExpressionValidator
                    ID="valeDateTime" runat="server" ErrorMessage="时间不合法" 
                ControlToValidate="txtDateTime" Display="Dynamic" Font-Size="12px" 
                ValidationExpression="^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29))$"></asp:RegularExpressionValidator><br />
                
                
            <asp:Button ID="btnSumbit" runat="server" Text="验证" onclick="btnSumbit_Click" />
            <asp:Label ID="lblMessage" runat="server"></asp:Label>
        </div>先验证时间不能空,而且为合法的时间格式protected void btnSumbit_Click(object sender, EventArgs e)
            {
                DateTime checkTime;
                DateTime dtNow = DateTime.Now;  //当前时间
                DateTime startWeek;
                DateTime endWeek;            //如果验证通过
                if (IsValid)
                {
                    checkTime = Convert.ToDateTime(txtDateTime.Text); //用户输入的时间
                    startWeek = Convert.ToDateTime(dtNow.AddDays(1 - Convert.ToInt32(dtNow.DayOfWeek.ToString("d"))).ToString("yyyy-MM-dd 00:00:00")); //本周周一
                    endWeek = Convert.ToDateTime(startWeek.AddDays(6).ToString("yyyy-MM-dd 23:59:59"));  //本周周日
                    if (checkTime >= startWeek && checkTime <= endWeek)
                    {
                        lblMessage.Text = "时间是在本周内";
                    }
                    else
                    {
                        lblMessage.Text = "时间不是在本周内";   
                    }
                }
            }