节假日批量设置的C#.NET程序代码参考-创新互联

例如我们在设置审批流程时,往往需要设置限制时限,例如2天内审核好等等,这时候会遇到休息日,需要把休息日去掉,当然有各种各样复杂的情况,我们先把问题想得简单一些,就按普通的休息一整天,全公司都统一休息的方式。

创新互联建站是一家集网站建设,巴中企业网站建设,巴中品牌网站建设,网站定制,巴中网站建设报价,网络营销,网络优化,巴中网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

 节假日批量设置的C#.NET程序代码参考

下面是程序的运行效果,主要是把12个月展示在上面,有时候费力一些,黑色部分是表示休息,本想用红色显示,但是微软默认是黑色的,没能搞定

 节假日批量设置的C#.NET程序代码参考

实现代码可以参考

//--------------------------------------------------------------------
// 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程序代码参考-创新互联
标题网址:http://ybzwz.com/article/dcphjg.html