节假日批量设置的C#.NET程序代码参考-创新互联
例如我们在设置审批流程时,往往需要设置限制时限,例如2天内审核好等等,这时候会遇到休息日,需要把休息日去掉,当然有各种各样复杂的情况,我们先把问题想得简单一些,就按普通的休息一整天,全公司都统一休息的方式。
创新互联建站是一家集网站建设,巴中企业网站建设,巴中品牌网站建设,网站定制,巴中网站建设报价,网络营销,网络优化,巴中网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。下面是程序的运行效果,主要是把12个月展示在上面,有时候费力一些,黑色部分是表示休息,本想用红色显示,但是微软默认是黑色的,没能搞定
实现代码可以参考
//-------------------------------------------------------------------- // All Rights Reserved ,Copyright (C) 2012 , Hairihan TECH, Ltd. . //-------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Windows.Forms; using DotNet.Business; using DotNet.Utilities; namespace DotNet.WinForm { public partial class FrmHolidays : BaseForm { public FrmHolidays() { InitializeComponent(); } private void GetYearList() { // 绑定最近几年就可以了 for (int i = DateTime.Now.Year - 3; i < DateTime.Now.Year + 2; i++) { this.cmbYear.Items.Add(i.ToString()); } // 今年为默认选中 this.cmbYear.SelectedIndex = this.cmbYear.Items.Count - 2; } private void FrmHolidays_Load(object sender, EventArgs e) { this.GetYearList(); } ////// 获取节假日 /// /// 当前点中了某个日期了 private void GetYearDas(string holiday = null) { BaseHolidaysManager manager = new BaseHolidaysManager(this.UserInfo); if (!string.IsNullOrEmpty(holiday)) { int returnValue = manager.Delete(new KeyValuePair(BaseHolidaysEntity.FieldHoliday, holiday)); if (returnValue == 0) { manager.AddHoliday(holiday, false); } } int year = int.Parse(this.cmbYear.SelectedItem.ToString()); this.mc.Enabled = false; if (this.mc.MinDate.Year <= year) { this.mc.MaxDate = new DateTime(year, 12, 31); this.mc.MinDate = new DateTime(year, 1, 1); } else { this.mc.MinDate = new DateTime(year, 1, 1); this.mc.MaxDate = new DateTime(year, 12, 31); } this.mc.Enabled = true; // 把这一年的变粗的都加上来,这个是后台处理程序,所以没考虑数据库性能的问题,每次都读取了一下,有需要时可以改进一下 string where = BaseHolidaysEntity.FieldHoliday + " >= '" + this.mc.MinDate.ToString(BaseSystemInfo.DateFormat) + "'" + " AND " + BaseHolidaysEntity.FieldHoliday + " <= '" + this.mc.MaxDate.ToString(BaseSystemInfo.DateFormat) + "'"; List listEntity = manager.GetList (where); List boldedDates = new List (); foreach (BaseHolidaysEntity entity in listEntity) { boldedDates.Add(DateTime.Parse(entity.Holiday)); } this.mc.BoldedDates = boldedDates.ToArray(); } private void cmbYear_SelectedIndexChanged(object sender, EventArgs e) { // 从数据库里读取出来节假日的设置 GetYearDas(); } private void btnInitializeYear_Click(object sender, EventArgs e) { BaseHolidaysManager manager = new BaseHolidaysManager(this.UserInfo); // 这里把周日,知道的5.1. 10.1 等节日进行休息日设置 int year = int.Parse(this.cmbYear.SelectedItem.ToString()); DateTime startDate = new DateTime(year, 1, 1); while (startDate.Year == year) { // 周六周日是默认休息日 if (startDate.DayOfWeek == DayOfWeek.Saturday || startDate.DayOfWeek == DayOfWeek.Sunday) { manager.AddHoliday(startDate.ToString(BaseSystemInfo.DateFormat)); } // 5.1 是休息日 // 10.1 是休息日 startDate = startDate.AddDays(1); } // 从数据库里读取出来节假日的设置 GetYearDas(); } private void mc_DateSelected(object sender, DateRangeEventArgs e) { GetYearDas(this.mc.SelectionStart.ToString(BaseSystemInfo.DateFormat)); } } }
创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。
分享题目:节假日批量设置的C#.NET程序代码参考-创新互联
文章URL:http://azwzsj.com/article/dcphjg.html