任何人都知道如何构建一周的DataTable?
我听说有很多类型的计算,格里高利或其他...... 我的需求是ISO Week No并且绑定到datatable取决于周数
DataTable有两列:ISOWeekNo和WeekName
ISOWeekNo WeekName
1 01 Jan 2012 To 07 Jan 2012
2 08 Jan 2012 To 14 Jan 2012
如何根据ISO周编号在C#中以编程方式构建?
答案 0 :(得分:2)
// Set up DataTable
var dt = new DataTable();
var col1 = new DataColumn("ISOWeekNo", typeof(int));
var col2 = new DataColumn("WeekName", typeof(string));
dt.Columns.AddRange(new[] { col1, col2 });
dt.PrimaryKey = new[] { col1 };
// Start with the first day of this year and check each day until next year.
var day = new DateTime(DateTime.Now.Year, 1, 1);
while (day.Year == DateTime.Now.Year)
{
var weekNum = DateTimeFormatInfo.InvariantInfo.Calendar.GetWeekOfYear(day, CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday);
if (!dt.Rows.Contains(weekNum))
dt.Rows.Add(weekNum, string.Format("{0} to {1}", day.ToString("dd' 'MMM' 'yyyy"), day.AddDays(6).ToString("dd' 'MMM' 'yyyy")));
day = day.AddDays(1);
}