C# 创建年、月、周、日TreeView

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace VideoPatrolControl
{
    public partial class zz : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            this.CreatYear(2014);
        }

        /// <summary>
        /// 创建整年
        /// </summary>
        /// <param name="mp_year">年份</param>
        private void CreatYear(int mp_year)
        {
            int week = 0;
            int year = mp_year;
            TreeView tree = new TreeView();
            TreeNode NodeYear = new TreeNode(string.Format("{0}年", mp_year));
            tree.Nodes.Add(NodeYear);
            for (int Month = 1; Month < 13; Month++)
            {
                TreeNode NodeMonth = new TreeNode(string.Format("{0}月", Month.ToString()));
                NodeYear.ChildNodes.Add(NodeMonth);
                NodeMonth.Expanded = false;

                int days = GetMonthNum(year, Month);
                
                for (int day = 1; day <= days; day++)
                {
                    string dateStr = string.Format("{0}/{1}/{2}", mp_year, Month, day);
                    DateTime dt = DateTime.Parse(dateStr);
                    DayOfWeek dow = dt.DayOfWeek;
                    
                    if (dow == DayOfWeek.Monday)
                    {
                        week++;
                        TreeNode NodeWeek = new TreeNode(string.Format("第{0}周", week.ToString()));
                        NodeMonth.ChildNodes.Add(NodeWeek);
                        NodeWeek.Expanded = false;

                        for (int weekDay = 0; weekDay < 7; weekDay++)
                        {
                            dow = dt.DayOfWeek;
                            string strWeek = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetDayName(dow);
                            TreeNode NodeDay = new TreeNode(string.Format("{0}({1}.{2})", strWeek, dt.Month, dt.Day));
                            NodeWeek.ChildNodes.Add(NodeDay);
                            dt = dt.AddDays(1);
                        }
                    }
                }
            }
            this.panel1.Controls.Add(tree);
        }

        /// <summary>
        /// 返回每月天数
        /// </summary>
        /// <param name="mp_Year">年份</param>
        /// <param name="mp_Month">月份</param>
        /// <returns>天数</returns>
        private int GetMonthNum(int mp_Year, int mp_Month)
        {
            int days = 0;
            int Year = mp_Year;
            int Month = mp_Month;
            
            if (Month == 1 || Month == 3 || Month == 5 || Month == 7 || Month == 8 || Month == 10 || Month == 12)
            {
                days = 31;
            }
            if (Month == 4 || Month == 6 || Month == 9 || Month == 11)
            {
                days = 30;
            }
            if ((Year % 400) != 0)//不是闰年
            {
                if (Month == 2)
                {
                    days = 28;
                }
            }
            else
            {
                if (Month == 2)
                {
                    days = 29;
                }
            }
            return days;
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值