C#获取两个时间的时间差并去除周末(取工作日)的方法
作者:niuniu 发布时间:2022-07-25 00:20:44
标签: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#程序设计有所帮助。


猜你喜欢
- 一、系统介绍本系统实现了用户登录,实现了对学生成绩的增删改查,实现了用户修改密码功能,采用MD5加密算法,数据库使用Mysql8.0.13,
- 写在前面所谓异常处理,即让一个程序运行时遇到自己无法处理的错误时抛出一个异常,希望调用者可以发现处理问题.异常处理的基本思想是简化程序的错误
- 本文实例讲述了基于C++实现的哈夫曼编码解码操作。分享给大家供大家参考,具体如下:哈夫曼编码是一个通过哈夫曼树进行的一种编码,一般情况下,以
- 本文实例为大家分享了android通过servlet上传文件到服务器的具体代码,供大家参考,具体内容如下服务器端:部署在Tomcat上,直接
- 需求是需要在TextView前端加入一个标签展示。最终效果图如下:根据效果图,很容易就能想到使用SpannableStringBuilder
- 大家好,我叫柠檬水,今天马上就要放假,突然想到自己以前的伙伴、同学,好像想到他们空间没怎么发过动态,难道是把我屏蔽了吗,好友又那么多,行吧,
- 协变协变概念令人费解,多半是取名或者翻译的锅,其实是很容易理解的。比如大街上有一只狗,我说大家快看,这有一只动物!这个非常自然,虽然动物并不
- namespace ConsoleApplication2 { class Program { static v
- 本文讲述了Android使用国内镜像在线更新SDK的方法。分享给大家供大家参考,具体如下:什么是Android SDK:SDK:(softw
- 一、Mybatis一对多分解式查询分解式查询就是将一条Sql语句拆分成多条在MyBatis多表查询中,使用连接查询时一个Sql语句就可以查询
- 目标:list中有0到39共40个元素,删除其中索引是10、20、30的元素方案一:使用普通for循环从前往后遍历再删除//初始化List列
- 一、前言Java 8 引入了默认方法以及可以在接口中定义的静态方法。默认方法是一个普通的 java 方法,但以 default 关键字开头,
- 在android移动端的开发中,首页轮播图是一个特别常见的功能,所以今天就来将最近写的一个小demo记录一下。首先当然是新建一个项目代码如下
- 美团电商应用平台大家使用非常频繁,下面小编通过本文给大家介绍电商应用平台中常用的选择类别下拉列表的实现。先给大家展示下效果图:一、下拉列表的
- 本文实例为大家分享了C语言实现代码雨效果的具体代码,供大家参考,具体内容如下一、项目描述和最终的效果展示项目: 让字符从上到下
- 一、MyBatis缓存介绍正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持1.一级缓存:基于PerpetualC
- 这几天对Android中实现画圆弧及圆弧效果中所实现的效果进行了修改,改为进度圆心进度条,效果如图所示TasksCompletedView.
- 这篇文章主要介绍了如何使用两个栈实现队列Java,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以
- 我们平时在开发系统时,一般我们的系统工程会被分为多个模块,一个原因是方便协同开发,系统间解耦,另外一个很重要的原因是:别的系统需要依赖我们系
- 滑动删除的部分主要包含两个部分, 一个是内容区域(用于放置正常显示的view),另一个是操作区域(用于放置删除按钮)。默认情况下,操作区域是