Member 14521650 Ответов: 1

Как рассчитать разницу между двумя датами в текстовых полях в C#.


Хай,

Любое тело, пожалуйста, помогите мне..
я делаю проект в ASP.NET
у меня есть 2 текстовых ящика и 1 этикетка,

textbox1=получить время в базе данных(время начала ex:12:00)
textbox2=время окончания ex:13:00

у меня есть, чтобы сделать разницу в этикетке,т. е. 60(т. е. превращаются в минуты)

Что я уже пробовал:

<script type="text/javascript">
function ActValuecheck() {
            var StartTime = $("#<%=lblstarttime.ClientID%>").text();
            var StartDate = $("#<%=hf_StartDate.ClientID%>").val();
            var EndTime = $("#<%=tp_ActEndtime.ClientID%>").val();
            var EndDate = $("#<%=dp_ReceiptDate.ClientID%>").val();
            var value = $("#<%=lblvalue.ClientID%>").text();

            var ST = StartTime.split(':');
            var ET = EndTime.split('-');
            var SD = StartDate.split('-');
            var ED = EndDate.split('-');
            var StartDate1 = new Date(SD[2], parseInt(SD[1]) - 1, SD[0], ST[0], ST[1], 0);
            var EndDate1 = new Date(ED[0], parseInt(ED[1]) - 1, ED[2], ET[3], ET[4], 0);
            //EndDate1.setHours(ET[3], ET[4], 0);
            var ActValue_InMin = (EndDate1 - StartDate1) / (60 * 1000);
            ActValue_InMin = parseFloat(ActValue_InMin).toFixed(0);
            document.getElementById("<%=lbl_Actvalue.ClientID%>").innerHTML = ActValue_InMin;
            document.getElementById("<%=lbl_Actvalue_hf.ClientID%>").value = ActValue_InMin;

            var Eff = (parseFloat(value) / ActValue_InMin) * 100;
            Eff = Eff.toFixed(2);
            $('#<%=lbl_Efficiency.ClientID%>').text(Eff);
            $('#<%=lbl_Efficiency_hf.ClientID%>').val(Eff);
        }
</script>

<div class="col-xs-3 col-sm-3 col-md-3">
                                    <div class="form-group">
                                        <asp:label id="Label7" runat="server" text="StartTime:" font-bold="True">
                                                            
                                        <asp:label id="lblstarttime" runat="server" text="" font-bold="True">
                                        <asp:hiddenfield id="hf_StartDate" runat="server">
                                    </div>
                                </div>
                                <div class="col-xs-1 col-sm-1 col-md-1">
                                    <div class="form-group">
                                        <asp:requiredfieldvalidator id="RequiredFieldValidator6" runat="server" forecolor="Red" controltovalidate="tp_ActEndtime" validationgroup="ReceiptSave" errormessage="*" font-bold="true">
                                    </div>
                                </div>
                            
                            <div class="row">

                                <div class="col-xs-5 col-sm-5 col-md-5">
                                    <div class="form-group">
                                        <asp:label id="Label2" runat="server" text="Act Value:">
                                    </div>
                                </div>
                                <div class="col-xs-6 col-sm-6 col-md-6">
                                    <div class="form-group">
                                        <%--<asp:textbox id="txtActvalue" enabled="false" runat="server" class="form-control input-md">--%>
                                        <asp:label id="lbl_Actvalue" runat="server" text="">
                                        <asp:hiddenfield id="lbl_Actvalue_hf" runat="server">
                                    </div>
                                </div>
                                <div class="col-xs-1 col-sm-1 col-md-1"></div>
                            </div>
                            <div class="row">
                                <div class="col-xs-5 col-sm-5 col-md-5">
                                    <div class="form-group">
                                        <asp:label id="Label3" runat="server" text="Efficiency (in %):">
                                    </div>
                                </div></div>

Richard MacCutchan

Вам нужно узнать о типах DateTime и средствах выбора DateTime.

MadMyche

Я отредактировал ваши теги, ваша проблема больше похожа на вопрос javascript/jquery, чем на C#/Asp.net; и я добавил правильную разметку для кода, который вы представили

1 Ответов

Рейтинг:
1

JimTerry

вам следует преобразование строки в дату тогда вы можете попробовать это:

DateTime date1 = Convert.ToDateTime(borrowed_date_txt);
      DateTime date2 = Convert.ToDateTime(return_date_txt);
      int result = DateTime.Compare(date1, date2);
      string relationship;

      if (result < 0)
         relationship = "is earlier than";
      else if (result == 0)
         relationship = "is the same time as";         
      else
         relationship = "is later than";


CHill60

Избегайте использования семейства функций Convert с пользовательским вводом. Если пользователь неправильно определит формат, то ваш код выдаст исключение. Это лучшая практика для использования значение datetime.Метод TryParse[^]

MadMyche

Обратите внимание, что расчет выполняется на javascript, а не на C#