N个工作日后的日期
/// <summary>
/// 获取时间
/// </summary>
/// <param name="dt">当前时间</param>
/// <param name="n">N个工作日</param>
/// <returns></returns>
public static string Dt(DateTime dt, int n)
{
WorkDay workDay = new WorkDay();
//特殊日期(此处数据为模拟数据)
List<WorkDay> workDayList = new List<WorkDay>();
workDayList.Add(new WorkDay { Key=1,Dt=DateTime.Now.AddDays(1),type=WorkDayType.休息});
workDayList.Add(new WorkDay { Key = 2, Dt = DateTime.Now.AddDays(2), type = WorkDayType.休息 });
workDayList.Add(new WorkDay { Key = 3, Dt = DateTime.Now.AddDays(3), type = WorkDayType.工作 });
workDayList.Add(new WorkDay { Key = 4, Dt = DateTime.Now.AddDays(4), type = WorkDayType.工作 });
workDayList.Add(new WorkDay { Key = 5, Dt = DateTime.Now.AddDays(5), type = WorkDayType.休息 });
workDayList.Add(new WorkDay { Key = 6, Dt = DateTime.Now.AddDays(6), type = WorkDayType.休息 });
workDayList.Add(new WorkDay { Key = 7, Dt = DateTime.Now.AddDays(7), type = WorkDayType.休息 });
workDayList.Add(new WorkDay { Key = 8, Dt = DateTime.Now.AddDays(8), type = WorkDayType.休息 });
workDayList.Add(new WorkDay { Key = 9, Dt = DateTime.Now.AddDays(9), type = WorkDayType.休息 });
workDayList.Add(new WorkDay { Key = 10, Dt = DateTime.Now.AddDays(10), type = WorkDayType.休息 });
workDayList.Add(new WorkDay { Key = 11, Dt = DateTime.Now.AddDays(11), type = WorkDayType.休息 });
workDayList.Add(new WorkDay { Key = 12, Dt = DateTime.Now.AddDays(12), type = WorkDayType.休息 });
int d = 0;
if (n<=0)
{
d = 0;
return dt.AddDays(d).ToShortDateString();
}
for (int i = 1; i >0; i++)
{ var gg = workDayList.Where(x => x.Dt.ToShortDateString() == dt.AddDays(i).ToShortDateString()).FirstOrDefault();
if ((int)dt.AddDays(i).DayOfWeek == 0 || (int)dt.AddDays(i).DayOfWeek == 6)
{
//如果为周六或者周末 则判断是否为工作时间
if (gg != null)
{
if (gg.type == WorkDayType.工作)
{
d++;
}
}
}
else //不是周末和周六
{
if (gg != null)
{
if (gg.type == WorkDayType.休息)
{
}
else
{
d++;
}
}
else
{
d++;
}
}
if (d==n)
{
return dt.AddDays(i).ToShortDateString();
}
}
return dt.AddDays(d).ToShortTimeString();//这句代码没实际意义,只为编译器通过
}
public class WorkDay
{
public DateTime Dt { get; set; }
public int Key { get; set; }
public WorkDayType type { get; set; }
}
public enum WorkDayType
{
工作,休息
}
N个工作日后的日期的更多相关文章
- java获取n个工作日后的日期, 排除周末和节假日(顺延)
一.写在前面 需求: 工作需要获取n个工作日后的日期, 需要排除weekend和holiday, holiday存在数据库中, 存入的形式是一个节日有起始日期和截止日期(以下文中有关于节假日的表截图) ...
- python 递归计算若干工作日后的日期
import datetime # 根据第一次计算出来的休息日数,计算还需要的工作日数.(递归调用) def get_next_date(self, start_date, weekend_days) ...
- 前端yyyy-mm-dd格式 计算一段工作日后,日期
//计算一段工作日后,日期getWorkday(dat, itervalByDay) { function formatTen(f) { if (parseInt(f, 10) < 10) { ...
- ABAP 日期函数
一 财务期间处理 T_CODE: OB29 **取 公司年度变式, 和 货币 SELECT SINGLE waers periv FROM t001 INTO (v_waers,v_p ...
- Numpy进阶操作
目录 1. 如何获取满足条设定件的索引 2. 如何将数据导入和导出csv文件 3. 如何保存和加载numpy对象 4. 如何按列或行拼接numpy数组 5. 如何按列对numpy数组进行排序 6. 如 ...
- 我的第一篇博客之js的XXXX年XX月XX日 星期[日一-六] [上下]午 XX时:XX分
<!DOCTYPE html> <html> <head> <title>test</title> ...
- Java节假日算法
类:Vacation package test; import java.io.Serializable; import java.util.Date; public class Vacation i ...
- 结束日期必须大于开始日期--My97DatePicker日历控制的又一方便之处
在做时间查询时,有时需要两个日期,从一个日期到另外一个日期的那种,但是这样会有一个问题,比如后者的结束日期晚于开始日期怎么办?用JS写验证,麻烦,呵呵,用这个日历控件,可方便实现结束日期只显示开始日期 ...
- MYSQL基础03(日期函数)
工作中对日期的处理是经常遇到的,需求可能多种多样,因此重点介绍. 1.获取当前日期 select NOW() -- 结果:2015-10-28 22:41:11 ),NOW() -- 结果 2015- ...
随机推荐
- 什么是混合app?
APP混合模式和原生模式的优劣 ECSHOP模板/ecshop开发中心(www.68ecshop.com) / 2014-06-27 每当你打算开发移动应用程序时,都要考虑你的应用如何创建以及如何部署 ...
- 在安卓手机上安装完整kali linux系统
俗话说,没图说个JB.好我马上上图 提醒:我在这里只是提供一个思路过程,希望可以帮到你,同时我也做一个记录,有任何问题欢迎 0.0.:I87OI94664 威信 :Z2tsYmI1MjA= (b ...
- PHP之Trait详解
php从以前到现在一直都是单继承的语言,无法同时从两个基类中继承属性和方法,为了解决这个问题,php出了Trait这个特性 用法:通过在类中使用use 关键字,声明要组合的Trait名称,具体的Tra ...
- Python闭包举例
Python闭包的条件: 1.函数嵌套.在外部函数内,定义内部函数. 2.参数传递.外部函数的局部变量,作为内部函数参数. 3.返回函数.外部函数的返回值,为内部函数. 举例如下: def line_ ...
- Java泛型相关总结(下)
约束与局限性 不能用基本类型实例化类型参数 不能像Pair<double>这样调用,只能Pair<Double>,原因是类型擦除 运行时类型查询只使用于原始类型 虚拟机中的对象 ...
- Java中List集合去除重复数据的方法
1. 循环list中的所有元素然后删除重复 public static List removeDuplicate(List list) { for ( int i = 0 ; i < list. ...
- Redis 5.0.3集群部署
参考文章 https://blog.csdn.net/yyTomson/article/details/85783753 https://www.cnblogs.com/zy-303/p/102731 ...
- Ignite(三): Ignite VS Spark
参考:https://www.itcodemonkey.com/article/9613.html gnite 和 Spark,如果笼统归类,都可以归于内存计算平台,然而两者功能上虽然有交集,并且 I ...
- java注解篇
@SuppressWarnings注解 该批注的作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默. 允许您选择性地取消特定代码段(即,类或方法)中的警告.其中的想法是当您看到警告 ...
- java http 请求的工具类
/*** Eclipse Class Decompiler plugin, copyright (c) 2016 Chen Chao (cnfree2000@hotmail.com) ***/pack ...