How to get the current week starting date and add

2020-07-06 03:54发布

I'm attempting to recreate a time sheet built on asp and I can't figure out how to get the current weeks starting date "6-13-2010" and have it populate a combo box can you help me with this I'm new to C# and asp programming.

标签: c#
4条回答
老娘就宠你
2楼-- · 2020-07-06 04:22

Here's an example that uses an iterator.

    /// <summary>
    /// Gets the dates that mark the beginning of each week from the specified start date until today.
    /// </summary>
    /// <param name="weekStart">The day of the week that marks the beginning of a week</param>
    /// <param name="startDate">A date that determines the earliest week in the result.</param>
    /// <returns></returns>
    public IEnumerable<DateTime> GetWeeks(DayOfWeek weekStart, DateTime startDate)
    {
        DateTime current = DateTime.Today.AddDays(weekStart - DateTime.Today.DayOfWeek);
        while(current >= startDate)
        {
            yield return current;

            // move to the previous week
            current = current.AddDays(-7);
        }
    }

    public void PopulateUI()
    {
        // in this example, Monday is considered the start of the week,
        // and the drop down list will be populated with the date of each monday starting with this week going back to 1 year ago.
        ddlWeeks.DataSource = GetWeeks(DayOfWeek.Monday, DateTime.Today.AddYears(-1));
    }

You mentioned that you're pretty new to C#, so sorry if it seems confusing. Below is an alternative GetWeeks function that is not defined as an iterator.

    public List<DateTime> GetWeeks(DayOfWeek weekStart, DateTime startDate)
    {
        List<DateTime> result = new List<DateTime>();

        DateTime current = DateTime.Today.AddDays(weekStart - DateTime.Today.DayOfWeek);
        while (current >= startDate)
        {
            result.Add(current);

            // move to the previous week
            current = current.AddDays(-7);
        }

        return result;
    }
查看更多
Viruses.
3楼-- · 2020-07-06 04:30
DateTime startOfWeek = DateTime.Today.AddDays(-1 * (int)(DateTime.Today.DayOfWeek));

Regarding adding items to a DropDownList in ASP.NET, assuming you're using the webforms model, you would do something like

yourDropDown.Items.Add(new ListItem(yourText, yourValue));
查看更多
对你真心纯属浪费
4楼-- · 2020-07-06 04:41
DateTime.Now.Date.AddDays(-1 * (Int32)DateTime.Now.DayOfWeek)
查看更多
一夜七次
5楼-- · 2020-07-06 04:47
DateTime startOfWeek = Today.AddDays((int)Today.DayOfWeek * -1)

Likely an off by one error, since it is untested.

查看更多
登录 后发表回答