簡體   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