获取指定年份/月份的周六周天 + 标记指定日期(加粗)

获取指定年份/月份的周末(周六、周天)

using System;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace KUN.CONTROL
{
    public partial class 获取周末 : Form
    {
        public 获取周末()
        {
            InitializeComponent();
        }

        private void 获取周末_Load(object sender, EventArgs e)
        {
            this.cmbYear.SelectedIndex = 0;
            this.cmbMonth.SelectedIndex = 0;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int year = int.Parse(this.cmbYear.Text);
            if (!this.cmbMonth.Text.Equals("全部"))//获取指定月份的周末--双休哦
            {
                int month = int.Parse(this.cmbMonth.Text);
                string str = NewMethod(year, month);

                this.textBox1.Text = str.ToString();
                int days = int.Parse(this.textBox1.Lines.Count().ToString()) - 1;
                this.textBox2.Text = year + "年" + month + "月,周末有" + days + "天";
            }
            else//获取指定年份的周末--双休哦
            {
                StringBuilder buf = new StringBuilder();
                string str = string.Empty;
                for (int i = 1; i <= 12; i++)
                {
                    str = NewMethod(year, i);
                    buf.Append(str);
                }
                this.textBox1.Text = buf.ToString();
                int days = int.Parse(this.textBox1.Lines.Count().ToString()) - 1;
                this.textBox2.Text = year + "年周末有" + days + "天";
            }
        }

        private string NewMethod(int year, int month)
        {
            // 某年某月的第一天
            DateTime t = new DateTime(year, month, 1);
            StringBuilder buf = new StringBuilder();
            do
            {
                // 星期天为周末
                if (t.DayOfWeek == DayOfWeek.Sunday || t.DayOfWeek == DayOfWeek.Saturday)
                {
                    // 输入周末日期
                    buf.AppendLine(t.ToString("yyyy-MM-dd dddd"));
                }
                t = t.AddDays(1);

            } while (t.Month == month);

            return buf.ToString();
        }
    }
}

运行效果如下:

标记指定日期

  private void button2_Click(object sender, EventArgs e)
        {
            DateTime test= new DateTime(2019, 4, 11);
            monthCalendar1.AddBoldedDate(test);//加粗
            monthCalendar1.BackColor = Color.Red;
            monthCalendar1.UpdateBoldedDates();//重绘粗体格式的日期

            DateTime test1 = new DateTime(2019, 4, 20);
            monthCalendar1.AddBoldedDate(test1);//加粗
            monthCalendar1.BackColor = Color.Red;
            monthCalendar1.UpdateBoldedDates();//重绘粗体格式的日期

            DateTime test2 = new DateTime(2019, 4, 15);
            monthCalendar1.AddBoldedDate(test2);//加粗
            monthCalendar1.BackColor = Color.Red;
            
            monthCalendar1.UpdateBoldedDates();//重绘粗体格式的日期
        }

运行效果如下:

原文地址:https://www.cnblogs.com/YYkun/p/10689161.html