0

我是 C# 的初学者,在使用 DateTime 时遇到了一些问题。我不想为日期使用 3 个单独的下拉菜单或文本框。但我仍然希望能够将用户输入限制为日期格式(dd/mm/yyyy)。我怎样才能做到这一点?

注意:我只是一个学习者,所以请解释你写的任何代码

4

4 回答 4

1

看看ASP.NET AJAX Toolkit它有一个示例 MaskedEdit 框,它应该可以完成您正在寻找的内容。

或者,您可以使用带有正则表达式的验证器来检查格式,使用第二个验证器来检查日期是否真实(即闰年问题)。

但我认为更简洁的 UI 方法是使用 MaskedEdit 系统和验证器。

于 2012-07-27T10:15:59.483 回答
1

嗨,您可以使用 javascript 来限制您的日期字段。

请参阅下面我的代码

您在 aspx 页面中的文本框,

<asp:Textbox ID="txtDate" runat="server" />

并使用如下的javascript

<script type="text/javascript" language="javascript">
function ValidateDateOf() {
    DayObj = new Date();
    var txtdate =  document.getElementById('<%=txtDate.ClientID %>').value;
    var arr = txtdate.split("/");
    var leapday = arr[0];
    var leapmonth = arr[1];
    var leapyear = arr[2];

    var CurDate = DayObj.getDate();
    var CurYear = DayObj.getFullYear();
    var CurMonth = DayObj.getMonth();

    if (leapday == '') {
        alert('day Field is required');
        return false;
    }
    if (leapmonth == '') {
        alert('month Field is required');
        return false;
    }
    if (leapyear == '') {
        alert('year Field is required');
        return false;
    }
    if (parseInt(leapday) > 29) {
        alert('invalid date');
         return false;
    }
    if (!isleap(leapyear)) {
        if (parseInt(leapday) > 28) {
            alert('invalid date');
            return false;
        }
        return true;
    }
    return true;
}

function isleap(leapyear) {
    var yr = leapyear;
    if ((parseInt(yr) % 4) == 0) {
        if (parseInt(yr) % 100 == 0) {
            if (parseInt(yr) % 400 != 0) {
                return false;
            }
            if (parseInt(yr) % 400 == 0) {
                return true;
            }
        }
        if (parseInt(yr) % 100 != 0) {
            return true;
        }
    }
    if ((parseInt(yr) % 4) != 0) {
        return false;
    }
}

于 2012-07-27T10:20:26.873 回答
0

您可以使用 AJAX 控件工具包的 CalendarExtender。

于 2012-07-27T10:15:49.650 回答
0

使用 jquery 日期时间选择器。

实现 jQuery 日期时间选择器

于 2012-07-27T10:21:47.420 回答