简单的项目日历

比如,有一个项目日历是这样的:星期1、星期3、星期5是工作日,其他是非工作日。

我们需要这样处理:

//甘特图项目日历背景dataGantt.isWorkingDate = function(date){var day = date.getDay();if(day == 1 || day == 3 || day == 5) return true;else return false;}

效果图如下:

这里的关键在于控制Edo.data.DataGantt对象的isWorkingDate方法返回值,它接受一个日期参数,如果范围true,表示是工作日,甘特图会显示白色背景;如果返回false,表示是非工作日,显示灰色网格背景。

标准的项目日历

一个实际的项目日历可能是这样的:星期六、星期日是非工作日,其他星期天是工作日;可以定义一个日期范围为工作日,也可以把以人日期范围定义为非工作日。

我们来处理这样一个项目日历,代码如下:

//定义一个项目日历数据对象,规定了一些基本工作日与非工作日范围/*    type: 1为通用日期,0为例外日期    work: 1工作日,0非工作日    day: 星期日 0, 星期一 1... 星期六 6*/var Calendar = [    {type: 1,work: 0,day: 0},   //星期日:非工作日{type: 1,work: 1,day: 1},    {type: 1,work: 1,day: 2},    {type: 1,work: 1,day: 3},    {type: 1,work: 1,day: 4},    {type: 1,work: 1,day: 5},    {type: 1,work: 0,day: 6},   //星期六:非工作日    //从 2009年1月28日 到 2009年2月1号为非工作日{type: 0,work: 0,start: new Date(2009, 0, 28),finish: new Date(2009, 1, 1)},//从 2009年2月38 到 2009年2月18号为工作日{type: 0,work: 1,start: new Date(2009, 1, 8),finish: new Date(2009, 1, 18)}    ]dataGantt.isWorkingDate = function(date){var day = date.getDay();var time = date.getTime();

//先处理是否包含在例外日期中(例外日期优先级高)    for(var i=0,l=Calendar.length; i<l; i++){var d = Calendar[i];        //如果包含在例外日期范围中if(d.type == 0 && time >= d.start.getTime() && time <= d.finish.getTime()){return d.work;        }    }//后处理通用星期天逻辑for(var i=0,l=Calendar.length; i<l; i++){var d = Calendar[i];//如果星期天一样if(d.type == 1 && d.day == day){return d.work;        }    }}

效果图如下:

本教程给出了一个规范的项目日历数据结构,用户可以扩展这个项目日历数据结构,为其构建一个项目日历调节设置面板,从而达到修改甘特图日历背景的目的。

了解更多信息,请登录网站:

http://www.edogantt.com

http://www.edogantt.com/zh_cn/edogantt.html

http://www.edogantt.com/zh_cn/dynamicgantt.html

http://www.edogantt.com/zh_cn/edoproject.html

http://www.edogantt.com/zh_cn/examples/calendar.html

转载于:https://www.cnblogs.com/elise/archive/2010/04/29/1723726.html

强大js web甘特图制作之甘特图的日历相关推荐

  1. 强大js web甘特图制作之甘特图组件和数据对象

    引用CSS和JS 使用EdoGantt是一件简单轻松的事,首先我们在HTML页面内引用CSS和JS: <!--edo css--><link href="http://ww ...

  2. 选择好用的线上甘特图制作工具

    在日常工作中,我们需要经常安排任务的时间,并进行合理的排期,以确保项目顺利完成.但面对繁多的任务和时间紧迫,排期往往成为工作中的一大问题.在这种情况下,选择一个好用的线上甘特图制作工具,可以非常有效地 ...

  3. excel 甘特图制作(详细)

    文章目录 前言 excel 甘特图制作(详细) 1. 模板字段确认 2. 冻结至F列 3. 在第二行确认状态颜色 4. 设置开始日期 5. 先将第3行居中,然后状态那列设置下拉 6. 填充任务 7. ...

  4. 甘特图制作_如何用Excel快速制作甘特图?(超详细!)

    甘特图作为现代项目管理中一项重要的管理工具,它能够帮助你考虑资源.成本等项目中重要的元素,并且能够通过图形直观的观察到项目中所要完成的任务.开始与结束时间,每项任务所需时间,某项任务在某个时间段内完成 ...

  5. excel甘特图模板_最简单的Excel甘特图制作方法,只用一条公式,项目进度一目了然...

    在工作中,每个部门或者每个人可能都会制定半年或一年的工作计划表,这样能更清楚的知道每个时间段自己要完成的工作和未完成的工作,然而,大多数人的计划表也只是简单的列举几点,微信就直接发给主管了,这样的计划 ...

  6. 甘特图制作_使用excel制作甘特图其实很简单,仅需4步搞定,项目进度一目了然...

    Hello,今天跟大家分享下如何在excel中制作甘特图.甘特图能直观的表现出任务的进度,以及各个项目之间的关联性 如果说你的项目众多,可以使用更专业的Project来制作甘特图,使用Project制 ...

  7. WPS表格甘特图制作教程

    1.准备数据表格 新建一个空白表格,输入文字和数字. 2.插入图表 框选单元格B3-D8的所有内容.点击"插入"再点击"全部图表".在弹出的页面上,单击选中&q ...

  8. Three.js 使用UV贴图制作地面

    Three.js 使用UV贴图制作地面 概述 原理 概述 若有帮助到你,麻烦点一波关注,博主会持续推出Echarts,D3,地图,Three.js方面的文章~~~ 在Three.js中使用UV纹理重复 ...

  9. 将AE开发的专题图制作功能发布为WPS

    AE开发可以定制化实现ArcGIS的地理处理功能,并实际运用于其他方面的工作,有时候我们还希望将AE开发的功能发布为网络地理信息处理服务(WPS),从而能在Web端更自由便利地调用所需要的地学处理算法 ...

最新文章

  1. 如何在 Linux 上用密码加密和解密文件
  2. 写一个函数days,实现计算本年第几天
  3. 说说第三方支付接口开发及开发中遇到的坑爹问题
  4. TextView中实现部分文字点击
  5. ajax 表格删除,jQuery AJAX删除只捕获第一个表格
  6. 再看中国互联网web2.0百强名单
  7. 批量文件转换:PDG转PDF并合并
  8. 绝了!深入分布式缓存从原理到实践技术分享,超详细
  9. 怎样理解时间序列的“平稳性”?
  10. 免费微信公众号专用h5在线电影票API
  11. 多元逻辑回归 · 数学推导过程及代码实现完全解析
  12. 【以太网交换安全】---端口安全及MAC地址飘移防止与检测
  13. Django之 Models Manager
  14. 删除win10系统默认微软输入法
  15. Muli3D 9 CubeTexture的采样原理
  16. 算法:Bloom Filter
  17. laravel会话控制和缓存操作
  18. 全国电子商务人才专业化从业认证考试初级教程(公共基础教程)(全国电子商务人才丛业能力教育指定教材)
  19. 网上企业订货系统平台源码价介绍|移讯云手机订单管理软件
  20. C#从入门到精通____5.1字符类Char的使用

热门文章

  1. 第十一篇: Ajax Control Toolkit 控件包--下载与安装
  2. ACM模板——并查集
  3. MacOS中安装python-jekins失败解决方法
  4. 一张表按分类查询:只显示前2行
  5. 解决非相同网段的包被丢弃的问题
  6. 关于多边形内点数问题的一些变形
  7. live的domain服务
  8. Docker用Dockerfile定制镜像
  9. POJ1548最小路径覆盖
  10. hdu2167 方格取数 状态压缩dp