【问题标题】:Days between two dates in asp.netasp.net中两个日期之间的天数
【发布时间】:2017-03-18 08:47:13
【问题描述】:

我找到员工入职日期和当天日期之间的天数,然后乘以每日金额。唯一的抱怨是,当我找出两个日期之间的天数时,对于自然绘制 31 天的月份,它计算超过 31 天。当我得到两个日期之间的日期时,我需要交易超过 30 天。

我该怎么做?

【问题讨论】:

  • 二月呢?还是闰年?
  • 您的要求并不完全清楚。也许如果您展示一些示例以及您尝试过的方法会有所帮助。
  • 第一个日期:2016-10-03 LastDate:2016-11-03 (int)(firstDate - lastDate).TotalDays;结果:31 天。我想要30天。
  • @deadLocked 这两个日期之间有 31 天,而不是 30 天。你的要求是荒谬的。
  • @deadLocked 然后在 if 语句中添加一些额外的逻辑,以减少它的损坏。同样,您的要求是荒谬的,因此您必须自己满足这些情况。

标签: c# asp.net date datetime


【解决方案1】:

你想要这样的东西吗?

DateTime date1 = new DateTime(2016, 10, 3);
DateTime date2 = new DateTime(2016, 11, 3);
var numberOfDays = date2.Subtract(date1).TotalDays;

【讨论】:

    【解决方案2】:

    我希望这是你想要的:

     DateTime firstDay = DateTime.ParseExact("2016-10-03", "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture);
     DateTime lastDate = DateTime.ParseExact("2016-11-03", "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture);
     double daysBetween = (lastDate - firstDay).TotalDays;
    

    【讨论】:

      【解决方案3】:

      如果您只对整月感兴趣,可以使用以下代码

      var normalisedDays = ((lastDate.Year - firstDate.Year) * 12 + lastDate.Month - firstDate.Month) * 30;
      

      【讨论】:

        【解决方案4】:

        在控制中:

        DateTime Date_1 = Date_Start;
        DateTime Date_2 = Date_End;
        TimeSpan difference = Date_2  - Date_1 ;
        var days = difference.TotalDays;
        

        在脚本中:

        <script>
        function calculateDifference()
        {
            var Date_Start= document.getElementById("Date_Start").value;
            var Date_End= document.getElementById("Date_End").value;
            var Date_StartSplit = Date_Start.split("/");
            var Date_EndSplit = Date_End.split("/");
        
            var StartDate = new Date(Date_StartSplit[2], Date_StartSplit[0] - 1, Date_StartSplit[1]);
            var EndDate = new Date(Date_EndSplit[2], Date_EndSplit[0] - 1, Date_EndSplit[1]);
            var res = Math.abs(StartDate - EndDate) / 1000;
            var days = Math.floor(res / 86400);
            document.getElementById("Nombre_days").value = days;
        
        }
        </script>
        

        【讨论】:

          猜你喜欢
          • 2014-06-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-16
          • 2023-02-07
          • 2014-06-12
          相关资源
          最近更新 更多