C#计算时间值

25 篇文章 1 订阅

asp.net(C#)时间相减 得到天数、小时、分钟、秒差
方法1
DateTime dtone = Convert.ToDateTime( “2007-1-1 05:00:00” );
DateTime dtwo = Convert.ToDateTime( “2007-1-5 08:00:00” );
TimeSpan span = dtone.Subtract(dtwo); //算法是dtone 减去 dtwo
tss.Text = span.Days + “天”

  • span.Hours + “小时”
  • span.Minutes + “分钟”
  • span.Seconds+ “秒”
  • span.TotalDays;
    方法2
    SpendHours = DiffMinutes(x.ENDTIME, x.REPAIRLOG.Where(y => y.STATUSNOW == 2).OrderByDescending(y => y.CREATETIME).Select(y => y.CREATETIME.Value).FirstOrDefault()) > 0 ? DiffMinutes(x.ENDTIME, x.REPAIRLOG.Where(y => y.STATUSNOW == 2).OrderByDescending(y => y.CREATETIME).Select(y => y.CREATETIME.Value).FirstOrDefault()) : 0,

方法3

 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    
        Date d1 = null;
        Date d2 = null;
    
        try {
            d1 = format.parse(dateStart);
            d2 = format.parse(dateStop);
    
            //毫秒ms
            long diff = d2.getTime() - d1.getTime();
    
            long diffSeconds = diff / 1000 % 60;
            long diffMinutes = diff / (60 * 1000) % 60;
            long diffHours = diff / (60 * 60 * 1000) % 24;
            long diffDays = diff / (24 * 60 * 60 * 1000);
    
            System.out.print("两个时间相差:");
            System.out.print(diffDays + " 天, ");
            System.out.print(diffHours + " 小时, ");
            System.out.print(diffMinutes + " 分钟, ");
            System.out.print(diffSeconds + " 秒.");
    
        } catch (Exception e) {
            e.printStackTrace();
        }

测试成功并使用的 方法4
在这里插入图片描述

    TimeSpan span = DateTime.Now - Convert.ToDateTime(sCallTime);
                var ercData = getEmsRCallCount(sCallRepairNo).Where(x => x.CALL_REPAIR_NO == sCallRepairNo).SingleOrDefault();
                {
                    ercData.CLOSE_TIME = now;
                    ercData.UPDATE_BY = UserSession.Account.Id;
                    //ercData.SPEND_TIMES = (Convert.ToDecimal(now) - Convert.ToDecimal(sCallTime)) / (60 * 1000) % 60;
                    ercData.SPEND_TIMES = Convert.ToDecimal(span.TotalMinutes);
                    ercData.STATUS = 0;
                };

取值后将其值改为整数
ercData.SPEND_TIMES = Convert.ToInt32(span.TotalMinutes);

取时间和将时间改为需要的格式

    //将批次拆分取前6位为YYMMDD转换成Datetime传进去
                m_DateCode = m_LotNo.Substring(0, 6);
                DateTime dtDateCodeTime = DateTime.ParseExact(m_DateCode, "yyMMdd", System.Globalization.CultureInfo.CurrentCulture);

                if (m_IsGlue == "Glue")
                {
                    //胶水类型的DateCode则打印为YYYYMMDD
                    newDateCode = "20" + Convert.ToString(m_DateCode);
                }
                else
                {
                    //非胶水则为YYYYWW
                    string DateCode = WeekOfYear(dtDateCodeTime);
                    newDateCode = "20" + m_LotNo.Substring(0, 2) + DateCode;   
                }
                strCOMPLETE = ('P' + m_Ipn + ';' + 'D' + newDateCode + ';' + 'L' + m_LotNo + ';' + 'V' + m_VendorCode + ';' + 'Q' + m_Qty + ';' + 'R' + m_RellId + ';' + "U000000").ToString();//U是安规'

                //通过DateCode和有效期计算起止有效期  MAT_START_TIME    MAT_END_TIME
                DateTime MatStartTime = DateTime.ParseExact("20" + m_DateCode, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture);
                string strMatEndTime = "";
                string strMatStartTime = "";
                if (m_IsGlue == "Glue")
                {
                     DateTime MatEndTime = MatStartTime.AddDays(Convert.ToDouble(m_EffectiveDays));
                     strMatEndTime = MatEndTime.ToString("yyyyMMdd").Trim();
                     strMatStartTime = MatStartTime.ToString("yyyyMMdd").Trim();
                }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值