Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何填写一个月内的周数和日期下拉列表_Vb.net - Fatal编程技术网

Vb.net 如何填写一个月内的周数和日期下拉列表

Vb.net 如何填写一个月内的周数和日期下拉列表,vb.net,Vb.net,选择月份和年份 在dropdownllist中填入周数和月数 例如,选择第4个月(4月),WeekNo的输出如下: Week No Date Week 1 [1-7] week 2 [8-14] Week 3 [15-21] week..... 这是完成这项工作的完整c#代码 protected void Page_Load(object sender, EventArgs e) { if(!IsPostBack) {

  • 选择月份和年份
  • 在dropdownllist中填入周数和月数
  • 例如,选择第4个月(4月),WeekNo的输出如下:

    Week No  Date
    Week 1   [1-7]
    week 2   [8-14]
    Week 3   [15-21]
    week.....
    
    这是完成这项工作的完整c#代码

    protected void Page_Load(object sender, EventArgs e)
        {
            if(!IsPostBack)
            {
                LoadMonthDdl();
            }
        }
    
        private void LoadMonthDdl()
        {
            ddlMotnh.Items.Clear();
            ddlMotnh.Items.Add(new ListItem("January-"+DateTime.Now.Year,"1"));
            ddlMotnh.Items.Add(new ListItem("February-" + DateTime.Now.Year, "2"));
            ddlMotnh.Items.Add(new ListItem("March-" + DateTime.Now.Year, "3"));
            ddlMotnh.Items.Add(new ListItem("April-" + DateTime.Now.Year, "4"));
            ddlMotnh.Items.Add(new ListItem("May-" + DateTime.Now.Year, "5"));
            ddlMotnh.Items.Add(new ListItem("June-" + DateTime.Now.Year, "6"));
            ddlMotnh.Items.Add(new ListItem("July-" + DateTime.Now.Year, "7"));
            ddlMotnh.Items.Add(new ListItem("August-" + DateTime.Now.Year, "8"));
            ddlMotnh.Items.Add(new ListItem("Septeber-" + DateTime.Now.Year, "9"));
            ddlMotnh.Items.Add(new ListItem("October-" + DateTime.Now.Year, "10"));
            ddlMotnh.Items.Add(new ListItem("November-" + DateTime.Now.Year, "11"));
            ddlMotnh.Items.Add(new ListItem("December-" + DateTime.Now.Year, "12"));
    
        }
        protected void weekWithDate_SelectedIndexChanged(object sender, EventArgs e)
        {
            ddlweekWithDate.Items.Clear();
            int month = Convert.ToInt32(ddlMotnh.SelectedValue);
            DateTime beginDate= new DateTime(DateTime.Now.Year,month,1);
            int beginDay = beginDate.Date.Day;
            int noOfDay = System.DateTime.DaysInMonth(DateTime.Now.Year, month);
            int weekNo=1;
            int weekStartDate = 1;
            string str = "";
            while (beginDay<=noOfDay)
            {
    
                str = "week " + weekNo.ToString()+"["+weekStartDate;
                int newWeekN0 = GetWeekOfMonth(beginDate);
                if(weekNo==newWeekN0)
                {
                }
                else
                {
                    str += "-" + beginDate.AddDays(-1).Day + "]";
                    ddlweekWithDate.Items.Add(new ListItem(str, newWeekN0.ToString()));
                    weekNo = newWeekN0;
                    weekStartDate = beginDate.Date.Day;
                }
                beginDate = beginDate.AddDays(1);
                beginDay++;
            }
            if(!str.Contains("]"))
            {
                str += "-" + noOfDay + "]";
                ddlweekWithDate.Items.Add(new ListItem(str, weekNo.ToString()));
            }
    
    
        }
        public static int GetWeekOfMonth(DateTime date)
        {
            DateTime beginningOfMonth = new DateTime(date.Year, date.Month, 1);
    
            while (date.Date.AddDays(1).DayOfWeek != CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek)
                date = date.AddDays(1);
    
            return (int)Math.Truncate((double)date.Subtract(beginningOfMonth).TotalDays / 7f) + 1;
        }
    
    受保护的无效页面加载(对象发送方,事件参数e)
    {
    如果(!IsPostBack)
    {
    LoadMonthDdl();
    }
    }
    私有void LoadMonthDdl()
    {
    ddlMotnh.Items.Clear();
    ddlMotnh.Items.Add(新列表项(“一月-”+DateTime.Now.Year,“1”));
    ddlMotnh.Items.Add(新列表项(“二月-”+DateTime.Now.Year,“2”));
    ddlMotnh.Items.Add(新列表项(“三月-”+DateTime.Now.Year,“3”));
    ddlMotnh.Items.Add(新列表项(“四月-”+DateTime.Now.Year,“4”));
    ddlMotnh.Items.Add(新列表项(“May-”+DateTime.Now.Year,“5”));
    ddlMotnh.Items.Add(新列表项(“June-”+DateTime.Now.Year,“6”));
    ddlMotnh.Items.Add(新列表项(“七月-”+DateTime.Now.Year,“7”));
    ddlMotnh.Items.Add(新列表项(“八月-”+DateTime.Now.Year,“8”));
    ddlMotnh.Items.Add(新列表项(“Septeber-”+DateTime.Now.Year,“9”));
    ddlMotnh.Items.Add(新列表项(“十月-”+DateTime.Now.Year,“10”));
    ddlMotnh.Items.Add(新列表项(“十一月-”+DateTime.Now.Year,“11”));
    ddlMotnh.Items.Add(新列表项(“十二月-”+DateTime.Now.Year,“12”));
    }
    已选择日期索引已更改的受保护的无效工作周(对象发件人,事件参数e)
    {
    ddlweekWithDate.Items.Clear();
    int month=转换为32(ddlMotnh.SelectedValue);
    DateTime beginDate=新的日期时间(DateTime.Now.Year,month,1);
    int beginDay=beginDate.Date.Day;
    int noOfDay=System.DateTime.DaysInMonth(DateTime.Now.Year,month);
    int-weekNo=1;
    int weekStartDate=1;
    字符串str=“”;
    
    而(beginDay使用自定义格式为“MMMM yyyy”的DateTimePicker将允许拾取月份和年份。然后处理ValueChanged事件将以如下简单方式填充组合框:

    Private Sub DateTimePicker1_ValueChanged(sender As System.Object, e As _
             System.EventArgs) Handles DateTimePicker1.ValueChanged
    
        Dim PickedDate As New DateTime(DateTimePicker1.Value.Year, _
            DateTimePicker1.Value.Month, 1)
    
        'Offset to the start of the second week
        Dim FirstWeek As Integer = 7 - PickedDate.DayOfWeek
        ComboBox1.Items.Clear()
        ComboBox1.Text = "Select Week No. and Dates"
        'Add first week to CB
        ComboBox1.Items.Add("Week 1 [1-" + FirstWeek.ToString + "]")
        'Point PickedDate to the start of the second week
        PickedDate = PickedDate.AddDays(FirstWeek)
        'The number of days left in the month
        Dim MonthDays As Integer = DateTime.DaysInMonth(PickedDate.Year, _
             PickedDate.Month) - PickedDate.Day
    
        'Loop to add the rest of the CB items
        For I = 0 To MonthDays Step 7
            Dim FromDate As Integer = PickedDate.Day + I
            Dim ToDate As Integer = PickedDate.Day + I + 6
            If ToDate > MonthDays + PickedDate.Day Then ToDate = MonthDays + _
                PickedDate.Day
    
            ComboBox1.Items.Add("Week " + (CInt(I / 7) + 2).ToString + " [" + _
                FromDate.ToString + "-" + ToDate.ToString + "]")
    
        Next
    End Sub
    

    您将不得不发布一些代码,向我们展示您迄今为止为完成此任务所做的工作。
    Private Sub DateTimePicker1_ValueChanged(sender As System.Object, e As _
             System.EventArgs) Handles DateTimePicker1.ValueChanged
    
        Dim PickedDate As New DateTime(DateTimePicker1.Value.Year, _
            DateTimePicker1.Value.Month, 1)
    
        'Offset to the start of the second week
        Dim FirstWeek As Integer = 7 - PickedDate.DayOfWeek
        ComboBox1.Items.Clear()
        ComboBox1.Text = "Select Week No. and Dates"
        'Add first week to CB
        ComboBox1.Items.Add("Week 1 [1-" + FirstWeek.ToString + "]")
        'Point PickedDate to the start of the second week
        PickedDate = PickedDate.AddDays(FirstWeek)
        'The number of days left in the month
        Dim MonthDays As Integer = DateTime.DaysInMonth(PickedDate.Year, _
             PickedDate.Month) - PickedDate.Day
    
        'Loop to add the rest of the CB items
        For I = 0 To MonthDays Step 7
            Dim FromDate As Integer = PickedDate.Day + I
            Dim ToDate As Integer = PickedDate.Day + I + 6
            If ToDate > MonthDays + PickedDate.Day Then ToDate = MonthDays + _
                PickedDate.Day
    
            ComboBox1.Items.Add("Week " + (CInt(I / 7) + 2).ToString + " [" + _
                FromDate.ToString + "-" + ToDate.ToString + "]")
    
        Next
    End Sub