C#计算两个时间段相差天数

计算两个时间段之间相差的天数,简单说一下思路:

首先获取两个时间段的时间值,分别将他们转换为毫秒数,在进行除以每天(24*60*60*1000)的毫秒数,那就得到了相差的天数了;

插件:

<script src="~/Content/JS/jquery-2.1.4.js"></script>

页面代码:

<div>
        <span>开始时间</span>
        <input type="date" id="Startdate" />
        <span>起止时间</span>
        <input type="date" id="Enddate" />
        <button onclick="Dateclick()">计算时间差</button>
        <input id="Date"/>
</div>

Js中的计算代码:

function Dateclick() {
            var Startdate = $("#Startdate").val().trim();
            var Enddate = $("#Enddate").val().trim();
            if (Startdate != "" && Enddate != "") {
                var start, end, days;
                //start = new Date(Startdate);//先转换为时间类型的
                //end = new Date(Enddate);
                //start = start.getTime();//geTime() 返回 1970/1/1 午夜距离该日期时间的毫秒数
                //end = end.getTime();
                start = Date.parse(Startdate);
//parse() 方法可解析一个日期时间字符串,并返回 1970/1/1 午夜距离该日期时间的毫秒数。
                end = Date.parse(Enddate);
                days = Math.floor(Math.abs(start - end) / (24 * 3600 * 1000));
//Math.abs() 返回数的绝对值 精确到毫秒。
                //Math.floor() 对数进行下舍入 -0.1转为1, 0.1转为0。
                $("#Date").val(days);
            }
            else {
                window.alert("请选择时间");
                 }
        }

控制器计算代码:

function Dateclick() {
            var Startdate = $("#Startdate").val().trim();
            var Enddate = $("#Enddate").val().trim();
            //var Startdate = "2019-01-12 13:12:55";
            //var Enddate = "2019-01-23 15:17:54"
            if (Startdate != "" && Enddate != "") {
                $.post("/LianXi/Date", { Startdate: Startdate, Enddate: Enddate }, function (data) {
                    $("#Date").val(data);
                });
            }
            else {
                window.alert("请选择时间");
                }
    }

控制器代码:

public string Date(DateTime Startdate, DateTime Enddate)
        {
            string Days = null;
            try
            {
                TimeSpan Start = new TimeSpan(Startdate.Ticks);
                TimeSpan End = new TimeSpan(Enddate.Ticks);
                //int Day = Start.Days - End.Days;
                //if (Day < 0)//判断时间天数是否为负
                //{
                //    //Days = Day.ToString().Substring(1); //将"-"截取舍去;
                //    Days = Day.ToString().Replace("-", "");//将"-"替换为空;
                //}
                //else
                //{
                //    Days = Day.ToString();
                //}
                TimeSpan Date = Start.Subtract(End).Duration();
                //Subtract()函数是TimeSpan时间相减,前值减去函数中的值,Duration()函数是获取TimeSpan的绝对值;
                //// Days = Date.Days.ToString();//.Days获取时间间隔天数部分;
                Days = Date.TotalDays.ToString();
                //string[] Day = Days.Split('.');//适合参数值精确到时分秒的值;
                //Days = Day[0];
            }
            catch
            {
                throw;
            }
            return Days;
        }

运行结果图:

猜你喜欢

转载自blog.csdn.net/weixin_44549949/article/details/88883544