首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >差分日期计算

差分日期计算
EN

Stack Overflow用户
提问于 2012-04-29 13:54:54
回答 2查看 171关注 0票数 0

我有三个文本框:StartTextboxEndTextBoxTextbox3,其中Textbox3包含No of Month。现在我希望根据No of Month检查开始日期和结束日期的差异。

下面是自定义验证函数:

代码语言:javascript
复制
protected void ValidateDuration(object sender, ServerValidateEventArgs e)
{
    DateTime start = DateTime.Parse(StartTextBox.Text);
    DateTime end = DateTime.Parse(EndTextBox.Text);

    int months = (end.Month - start.Month) + 12 * (end.Year - start.Year);

    e.IsValid = months <= TextBox3;
}
EN

回答 2

Stack Overflow用户

发布于 2012-04-29 14:02:56

如果您想用TextBox3的值检查months (一个int),那么您必须首先获得一个string形式的值,并将其转换为int。例如:

代码语言:javascript
复制
protected void ValidateDuration(object sender, ServerValidateEventArgs e)
{
    DateTime start = DateTime.Parse(StartTextBox.Text);
    DateTime end = DateTime.Parse(EndTextBox.Text);

    int months = (end.Month - start.Month) + 12 * (end.Year - start.Year);
    int noOfMonth = int.Parse(TextBox3.Text);

    e.IsValid = months <= noOfMonth;
}
票数 0
EN

Stack Overflow用户

发布于 2012-04-29 14:18:54

您可以通过使用覆盖操作来获取两个日期之间的月数-以获取两个日期之间的时间跨度:

代码语言:javascript
复制
    DateTime date1 = new DateTime();
    DateTime date2 = new DateTime();

    date1 = DateTime.Now;
    date2 = DateTime.Now.AddMonths(4);

    TimeSpan months = date2 - date1;

   Console.WriteLine(months.Days / 30);

此代码片段将显示4个月

对于您的代码:

代码语言:javascript
复制
e.IsValid = months <= Int32.TryParse(TextBox3.Text);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10370059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档