1.下载并引用My97DatePicker.js

2.将工作日休假的和周末上班的维护到数据库中

3.取出某段时间内的不上班日期集合

/// <summary>
///获取 无效日期集合 1 工作日休息(放假)2 休息日上班(上班)
/// </summary>
/// <returns></returns>
public JsonResult GetValidate()
{
List<string> Lst = new List<string>();
List<DateTime> valiDateLst = new List<DateTime>(); //工作日休息
List<DateTime> unvaliDateLst = new List<DateTime>(); //周末上班

var dt = DateTime.Now;
//前一个月
var fromTime = new DateTime(dt.Year, dt.Month < 2 ? 1 : dt.Month-1, 1);
//后六个月
var toTime = dt.Month > 6 ? new DateTime(fromTime.Year+1,1,1).AddDays(-1): fromTime.AddMonths(7).AddDays(-1);
//TimeSpan得到fromTime和toTime的时间间隔
var ts = toTime.Subtract(fromTime);
//获取两个日期间的总天数
long countday = ts.Days;

//循环用来扣除总天数中的双休日
for (var i = 0; i < countday; i++)
{
var tempdt = fromTime.Date.AddDays(i);
if (tempdt.DayOfWeek == DayOfWeek.Saturday || tempdt.DayOfWeek== DayOfWeek.Sunday)
{
string str = tempdt.ToString("yyyy-MM-dd");
Lst.Add(str);
}
}

List<SpecialDays> specialDaysLst= _specialDaysService.GetAllSpecialDaysList();

if (specialDaysLst==null)
{
specialDaysLst = new List<SpecialDays>();
}
var valiDate = from SpecialDays a in specialDaysLst where a.DayType == 1select a;
var nuValidate = from SpecialDays a in specialDaysLst where a.DayType == 2 select a;
//工作日休息
foreach (var vali in valiDate)
{
if (vali.StartDate.HasValue && vali.EndDate.HasValue)
{
for (DateTime date = vali.StartDate.Value; date <= vali.EndDate; )
{
valiDateLst.Add(date);
date=date.AddDays(1);
}
}
}
//休息日上班
foreach (var vali in nuValidate)
{
if (vali.StartDate.HasValue && vali.EndDate.HasValue)
{
for (DateTime date = vali.StartDate.Value; date <= vali.EndDate;)
{
unvaliDateLst.Add(date);
date = date.AddDays(1);
}
}
}

for (int i = 0; i < valiDateLst.Count; i++)
{
if ((Convert.ToDateTime(valiDateLst[i]) > fromTime && Convert.ToDateTime(valiDateLst[i]) < toTime) && !Lst.Contains(valiDateLst[i].ToString("yyyy-MM-dd")))
{
Lst.Add(valiDateLst[i].ToString("yyyy-MM-dd"));
}
}
for (int i = 0; i < unvaliDateLst.Count; i++)
{
if (Convert.ToDateTime(unvaliDateLst[i]) > fromTime && Convert.ToDateTime(unvaliDateLst[i]) < toTime)
{
Lst.Remove(unvaliDateLst[i].ToString("yyyy-MM-dd"));
}
}
return Json(Lst, JsonRequestBehavior.AllowGet);
}

4.页面引用加过滤条件

$("#ipt_repaymentDate").on("focus", function (dp) {
WdatePicker({
//opposite: true,//如果不设置则disabledDates参数中的值会是“无效日期”
disabledDates: unvalidate_date_Array
});
});

My97DatePicker.js 之无效日期设置的更多相关文章

  1. My97DatePicker{js日历插件}

    VS自带了一个日历控件:Calendar,但是它有一个缺陷:即在选择,隐藏,显示的时候都会引起回传 Calendar控件的一些用法:    取值:Calendar1.SelectedDate.ToSh ...

  2. Ajax异步获取html数据中包含js方法无效的解决方法

    页面上使用js写了一个获取后台数据的方法 function data() { var tab = $("#dic") $.ajax({ url: '../demo.ashx?met ...

  3. jquery/Js属性无效

    今天遇到个很奇葩的问题,就是checkbox的onchange时间无效,我一共写了两个checkbox的onchange事件,但就是只有一个能用,本来我以为是jquery的兼容问题,但是换成js还是不 ...

  4. 为什么导入本地jquery.js老是无效?(已解决)

    我从jquery官网里复制过来jquery.js内容,然后粘贴到本地,但是引用的时候总是无效. 在翻看脚本所在目录,无意间发现脚本文件是个jquery.js.js,    原来是我的文件的扩展名的问题 ...

  5. springmvc web-info目录下无法引入的js文件无效

    今天在联系spring的时候而然遇到了个不起眼的问题.那就是在html或者说jsp页面中引用js文件的时候总是提示找不到路径.eclipse更是抛出 No mapping to aa.js. 我就奇怪 ...

  6. babel配置项目目录支持转换es6语法,引入非项目目录js后,引入Js转换无效

    我遇到了一个问题,我在已经配置babel的项目中通过require引入了一个项目目录外层的另一个js文件,前期是可以成功转换并打包的,但是到了后期就不行了,报错: 这个报错的意思是,引入的js文件中有 ...

  7. My97DatePicker(js日期插件) v4.8

    1.下载地址 https://files.cnblogs.com/files/yu-shang/My97DatePicker.zip 2.文档地址 http://my97.net/demo/index ...

  8. JS - 解决引入 js 文件无效的问题

    增加 type 即可  <script type="text/javascript" src="....js"></script>

  9. jquery动态生成dom(比如append)导致js事件无效

    如果无效用这个方法: on() 方法在被选元素及子元素上添加一个或多个事件处理程序. <div id="zkdiv">  <input type="bu ...

随机推荐

  1. JAVA中传递参数乱码问题

    url传递中文如果jsp页面,myeclipse.web.xml中org.springframework.web.filter.CharacterEncodingFilter,都是UTF-8编码,直接 ...

  2. mysql的 charset、collation、prefix了解

    charset,即字符集. collation,用于指定数据集如何排序,以及字符串的比对规则,即排序规则. prefix,即数据库里表使用的前缀. /************************* ...

  3. Android线程之基本用法

    一: 在android中有两种实现线程thread的方法: 一种是,扩展java.lang.Thread类 另一种是,实现Runnable接口 二: Thread类代表线程类,它的两个最主要的方法是: ...

  4. iOS开发——关于开发者账号引发的血案

    这里不介绍怎么申请开发者账号,那个网上的教程太多了.这里讲点有意思的. 如果你们公司比较,怎么说呢,呵呵?管理层不懂开发,不管事,申请开发者账号的人员又比较小白,或者别有用心,用私人邮箱来申请,申请的 ...

  5. 查看Linux最近重启的时间

    最近实验室老是掉电,想查看服务器什么时候重启的,于是在网上找了一些资料.有两种方式可以查看服务器重启. (1) who -b (2) last reboot |head -1

  6. win7下wamp扩展memcache

    1.服务端安装 1.1 下载地址 http://download.csdn.net/detail/feiyuhit/5873533#comment 1.2 安装 将下载的压缩文件夹的memcached ...

  7. linux Cron 执行Django 任务计划

    用shell 脚本调用python 脚本如下 #!/bin/bash export FLAVOR=liveexport PYTHONPATH=$PYTHONPATH:/home/alex/Django ...

  8. 从底层谈WebGIS 原理设计与实现(三):WebGIS前端地图显示之根据地理范围换算出瓦片行列号的原理(转载)

    从底层谈WebGIS 原理设计与实现(三):WebGIS前端地图显示之根据地理范围换算出瓦片行列号的原理 1.前言   在上一节中我们知道了屏幕上一像素等于实际中多少单位长度(米或经纬度)的换算方法, ...

  9. iOS 之 UIStackView

    UIStackView是iOS9新推出的布局控件,它的出现,可以说颠覆了以往的布局方式. 问题时,如果我使用UIStackView,它能用在iOS7.8系统中吗? 我要测试一下.测试程序我放到gith ...

  10. iOS 错误 之 Unexpected interface name 'HomeListCell': expected expression

    说明:不应该是类HomeListCell:应该是表达式. 出现场景:赋值时,等号右面是个类名,而不是变量名.