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

来源:互联网 发布:lamp环境搭建 源码包 编辑:程序博客网 时间:2024/04/29 06:53

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;
    }

原创粉丝点击