c# 对时间的处理 判断日期差

string time1 = DateTime.Now.TimeOfDay.ToString();//   20:38:58.7149030
        string time2 = DateTime.Now.ToLocalTime().ToString();//2009-3-3 20:38:58
        string time3 = DateTime.Now.ToLongTimeString();//  20:38:58
        string time4 = DateTime.Now.ToShortDateString();//  2009-3-3
                                 
        string time6 = DateTime.Now.ToLongDateString(); //2009年3月3日
        string time7 = DateTime.Now.ToShortTimeString();//20:43

Monday, Mon 周一
Tuesday, Tue 周二
Wednesday, Wed 周三
Thursday, Thu 周四
Friday, Fri 周五
Saturday, Sat 周六
Sunday, Sun 周日

判断日期差
  DateTime time1 = DateTime.Now;
        DateTime time2 = DateTime.Parse("2009-11-1");

        TimeSpan ts = time2.Subtract(time1);
        string timespan = "相差:"
        + ts.Days.ToString() + "天"
        + ts.Hours.ToString() + "小时"
        + ts.Minutes.ToString() + "分钟"
        + ts.Seconds.ToString() + "秒";

比如输入两个日期3月1号,4月10号,计算两个日期内的周末天数。
 protected void JudgeTheTime(string IPAddress)//判断时间的方法
    {
        string weeknum = DateTime.Now.DayOfWeek.ToString();
        if (weeknum != "Saturday" && weeknum != "Sunday")//判断周末
        {
            string nowtime = DateTime.Now.TimeOfDay.ToString();//当前时间
            TimeSpan startTime = TimeSpan.Parse("17:30:00");
            TimeSpan endTime = TimeSpan.Parse("18:30:00");

            int a = DateTime.Now.TimeOfDay.CompareTo(startTime);
            int b = DateTime.Now.TimeOfDay.CompareTo(endTime);
            if (a > 0 && b < 0)//判断是否在指定时间内
            {

            }
        }
        DateTime time1 = DateTime.Now;
        DateTime time2 = DateTime.Parse("1009-11-2");

        TimeSpan ts = time2.Subtract(time1);
        int dnumber = -ts.Days;
       int aa= DaysOfWeekend1(time2,time1);
       this.Label6.Text = "两个日期相差" + dnumber + "天。<br/>周末" + aa + "天。<br/>工作总计" + (dnumber - aa) + "天";

    }


 

    //方法一,常规思路,循环判断日期来累加
    static int DaysOfWeekend1(DateTime dt1, DateTime dt2)
    {
        int n = 0;
        for (DateTime dt = dt1; dt <= dt2; dt = dt.AddDays(1))
        {
            if (dt.DayOfWeek == DayOfWeek.Saturday || dt.DayOfWeek == DayOfWeek.Sunday)
                n++;
        }
        return n;
    }

    //方法二,先计算两日期后的周末时间,再用两日期相减后整除7,乘以2,最后再加起来
    static int DaysOfWeekend(DateTime dt1, DateTime dt2)
    {
        int n = 0;
        int dw1 = (int)dt1.DayOfWeek;
        int dw2 = (int)dt2.DayOfWeek;

        dt1 = dt1.AddDays(6 - dw1);
        n = dw1 == 0 ? n + 2 : n + 1;
        dt2 = dt2.AddDays(6 - dw2);
        n = dw2 == 6 ? n : n - 1;

        TimeSpan ts = dt2.Subtract(dt1);
        return n + (ts.Days + 1) / 7 * 2;
    }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值