C#获取两个时间的时间差并去除周末(取工作日)的方法

 更新时间:2015年05月07日 10:42:44   作者:niuniu  
这篇文章主要介绍了C#获取两个时间的时间差并去除周末(取工作日)的方法,可有效的实现获取工作日的功能,涉及C#时间操作的相关技巧,需要的朋友可以参考下

本文实例讲述了C#获取两个时间的时间差并去除周末的方法。分享给大家供大家参考。具体分析如下:

一般来说取时间差的代码很多,但是能够只取工作日的时间差的代码很少,这段代码就来实现这一功能。

protected void Page_Load(object sender, EventArgs e)
{
 DateTime start = Convert.ToDateTime("2012-12-10");
 DateTime end= Convert.ToDateTime("2012-12-18");
 TimeSpan span = end - start;
 //int totleDay=span.Days;
 //DateTime spanNu = DateTime.Now.Subtract(span);
 int AllDays=Convert.ToInt32(span.TotalDays)+1;//差距的所有天数
 int totleWeek = AllDays / 7;//差别多少周
 int yuDay = AllDays % 7; //除了整个星期的天数
 int lastDay = 0;
 if (yuDay == 0) //正好整个周
 {
  lastDay = AllDays - (totleWeek * 2);
 }
 else
 {
  int weekDay = 0;
  int endWeekDay = 0; //多余的天数有几天是周六或者周日
  switch (start.DayOfWeek)
  {
  case DayOfWeek.Monday:
   weekDay = 1;
   break;
  case DayOfWeek.Tuesday:
   weekDay = 2;
   break;
  case DayOfWeek.Wednesday:
   weekDay = 3;
   break;
  case DayOfWeek.Thursday:
   weekDay = 4;
   break;
  case DayOfWeek.Friday:
   weekDay = 5;
   break;
  case DayOfWeek.Saturday:
   weekDay = 6;
   break;
  case DayOfWeek.Sunday:
   weekDay = 7;
   break;
  }
  if ((weekDay == 6 && yuDay >= 2) || (weekDay == 7 && yuDay >= 1) || (weekDay == 5 && yuDay >= 3) || (weekDay == 4 && yuDay >= 4) || (weekDay == 3 && yuDay >= 5) || (weekDay == 2 && yuDay >= 6) || (weekDay == 1 && yuDay >=7))
  {
  endWeekDay =2;
  }
  if ((weekDay == 6 && yuDay < 1) || (weekDay == 7 && yuDay <5) || (weekDay == 5 && yuDay < 2) || (weekDay == 4 && yuDay < 3) || (weekDay == 3 && yuDay < 4) || (weekDay == 2 && yuDay < 5) || (weekDay == 1 && yuDay < 6))  {
  endWeekDay = 1;
  }
  lastDay = AllDays - (totleWeek * 2) - endWeekDay;
 }
 lblTime.Text = lastDay.ToString();
}

希望本文所述对大家的C#程序设计有所帮助。

相关文章

  • Unity多语言转换工具的实现

    Unity多语言转换工具的实现

    这篇文章主要为大家详细介绍了Unity多语言转换工具的实现,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-06-06
  • 详解WPF如何在Panel中实现设置所有子项间距

    详解WPF如何在Panel中实现设置所有子项间距

    这篇文章主要为大家详细介绍了WPF如何在Panel中实现设置所有子项间距,本文借鉴了 Qt 中的 Spacing 设置方法,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-10-10
  • C#项目彩票选号实现思路

    C#项目彩票选号实现思路

    今天做了一个彩票选号的小软件,将学到的知识点总结一下,下面通过本文给大家分享C#项目彩票选号实现思路,感兴趣的朋友跟随小编一起看看吧
    2024-08-08
  • C# Winform使用扩展方法实现自定义富文本框(RichTextBox)字体颜色

    C# Winform使用扩展方法实现自定义富文本框(RichTextBox)字体颜色

    这篇文章主要介绍了C# Winform使用扩展方法实现自定义富文本框(RichTextBox)字体颜色,通过.NET的静态扩展方法来改变RichTextBox字体颜色,需要的朋友可以参考下
    2015-06-06
  • C#创建背景色渐变窗体的方法实例

    C#创建背景色渐变窗体的方法实例

    在窗体设计时,可以通过设置窗体的BackColor属性来改变窗口的背景颜色,但是该属性改变后整个窗体的客户区都会变成这种颜色,这样显得非常单调,本文给大家介绍了C#创建背景色渐变窗体的方法实例,需要的朋友可以参考下
    2024-04-04
  • C#在MySQL大量数据下的高效读取、写入详解

    C#在MySQL大量数据下的高效读取、写入详解

    最近由于工作的原因,经常需要对海量数据进行处理,做的数据爬虫相关,动辄千万级别的数据,单表几十个G 都是都是家常便饭。 那么主要的开发语言是C#,数据库使用的是MySQL。下面通过这篇文章我们来一起学习学习吧。
    2016-11-11
  • C#实现文件上传及文件下载功能实例代码

    C#实现文件上传及文件下载功能实例代码

    文件上传文件下载需求在项目中经常会遇到,今天小编给大家分享C#实现文件上传及文件下载功能实例代码,需要的朋友参考下吧
    2017-08-08
  • C#Windows窗体设计之ContextMenuStrip(鼠标右击菜单)的使用

    C#Windows窗体设计之ContextMenuStrip(鼠标右击菜单)的使用

    这篇文章主要介绍了C#Windows窗体设计之ContextMenuStrip(鼠标右击菜单)的使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • 带你复习c# 托管和非托管资源

    带你复习c# 托管和非托管资源

    这篇文章主要介绍了c# 托管和非托管资源的相关资料,文中讲解非常细致,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • C#中Invoke 和 BeginInvoke 的真正涵义

    C#中Invoke 和 BeginInvoke 的真正涵义

    这篇文章主要介绍了C#中Invoke 和 BeginInvoke 的真正涵义,需要的朋友可以参考下
    2014-10-10

最新评论