繁体   English   中英

有两个日历扩展名日期

[英]have two calendar extendar dates

我有两个日历扩展器:

<asp:TextBox ID="txtDOB" runat="server" Text="" />
<asp:CalendarExtender ID="calDOB" runat="server" TargetControlID="txtDOB" PopupButtonID="imgCalendarDOB"  />
<img src="images/calendar_rbc.gif" class="calenderImg" id="imgDOB" alt="" style="vertical-align: middle;cursor: pointer"  />
<img src="images/clear.png" class="calenderClearImg" alt=" " tabindex="0" id="clearDOB onclick="clearInput('<%=txtDOB.ClientID %>')" onkeypress="clearInput('<%=txtDOB.ClientID %>')" style="vertical-align: middle; cursor: pointer"  />
<asp:RequiredFieldValidator runat="server" ControlToValidate="txtDOB" ErrorMessage="*" ID="rdqDate"></asp:RequiredFieldValidator>

<asp:TextBox ID="txtStartDate" runat="server" Text="" style="padding-left:8px;width:136px;" />&nbsp;
<asp:CalendarExtender ID="calStartDate" runat="server" TargetControlID="txtStartDate" PopupButtonID="imgCalendarStartDate"   />
<img src="images/calendar_rbc.gif" class="calenderImg" id="imgStartDate" alt="" style="vertical-align: middle;cursor: pointer"  />
<img src="images/clear.png" class="calenderClearImg" alt=" " tabindex="0" id="clearStartDate" onclick="clearInput('<%=txtStartDate.ClientID %>')" onkeypress="clearInput('<%=txtStartDate.ClientID %>')" style="vertical-align: middle;cursor: pointer"  />
<asp:RequiredFieldValidator runat="server" ControlToValidate="txtStartDate" ErrorMessage="*" ID="RequiredFieldValidator1"></asp:RequiredFieldValidator>  

由此,我需要计算aghe差异,然后在另一个文本框中以年为单位显示该差异。 这怎么可能?

您可以先将文本框日期转换为datetime对象,如下所示:

DateTime myDate = DateTime.ParseExact(YourTextBox.Text, "yyyy-MM-dd HH:mm:ss,fff",
                                   System.Globalization.CultureInfo.InvariantCulture)

然后,您应该能够计算出时间跨度,如下所示:

TimeSpan span = Date1 - Date2;

然后在几年内转换。

int years = (span).Year

或者,您也可以创建通用的函数。

public static double DifferenceTotalYears(this DateTime start, DateTime end)
{
    // Get difference in total months.
    int months = ((end.Year - start.Year) * 12) + (end.Month - start.Month);
    // substract 1 month if end month is not completed
    if (end.Day < start.Day)
    {
        months--;
    }
    double totalyears = months / 12d;
    return totalyears;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM