创建两个日期之间所有周的数组或列表,并在datagridview上显示

时间:2013-10-03 13:26:41

标签: c# winforms

尝试将datagridview中的周数显示为列。要选择两个日期范围,单击按钮,然后在datagrid中将周数显示为列。

我正在尝试按ID和周数创建时间表图表

这是我到目前为止所做的事情,我想从日期中选择并获得数周。

var daysCount = DateTime.DaysInMonth(DateTime.Now.Year, 1);

for (int i = 1; i <= daysCount; i++)
{
    grid1.Columns.Add(new DataGridViewColumn() 
    { 
        HeaderText = i.ToString(), 
        CellTemplate = new DataGridViewTextBoxCell() 
    });
}

1 个答案:

答案 0 :(得分:0)

检查: https://stackoverflow.com/a/3738781/1043068

var start = new DateTime(2013, 9, 23);
var end = new DateTime(2013, 10, 5);

double daysBefore = (start - new DateTime(start.Year, 1, 1)).TotalDays;

int
    weekNumber = (int)Math.Ceiling(daysBefore / 7), // Start Day week number
    currentYear = start.Year; // used to check for a new year

for (var dt = start; dt <= end; dt = dt.AddDays(7))
{
    if (dt.Year > currentYear)
    {
        currentYear = dt.Year;
        weekNumber = 1;
    }

    dataGridView1.Columns.Add(new DataGridViewColumn
    {
        HeaderText = (weekNumber++).ToString(),
        CellTemplate = new DataGridViewTextBoxCell()
    });
}