我已经给出了一个Excel文档,其中记录了工作时间信息,该文档包含某些在Visual Studio中使用SSIS读取的列,然后将信息写入数据库。将日,星期和年份转换为日期
周和年的列包含星期数和年份,从星期一到星期五的列包含有关在该星期几的某个任务上花费了多少工作小时的信息。
我想要做的是把周,年,日转换成日期。我一直试图通过使用脚本组件来完成这一点,该脚本组件将日数,星期数和年份转换为日期,但到目前为止我还没有能够从列中获取日数。在我看来,如果使用该周的第一个和最后一个日期的开始日期和结束日期,它将起到最好的作用。
所以我的问题是如果有人知道如何做到这一点,或者如果我应该尝试不同的方法。
脚本组件:
public override void Input0_ProcessInputRow(Input0Buffer Row, CultureInfo cultureInfo, int day)
{
DateTime firstDayOfYear = new DateTime(Int32.Parse(Row.Jaar), 1, 1);
int firstWeek = cultureInfo.Calendar.GetWeekOfYear(firstDayOfYear, cultureInfo.DateTimeFormat.CalendarWeekRule, cultureInfo.DateTimeFormat.FirstDayOfWeek);
int dayOffSet = day - (int)cultureInfo.DateTimeFormat.FirstDayOfWeek + 1;
Row.TaskDates = firstDayOfYear.AddDays((Int32.Parse(Row.Week) - (firstWeek + 1)) * 7 + dayOffSet + 1);
}
请参阅[我应该在标题中使用标签吗?](http://meta.stackexchange.com/help/tagging)。 – pnuts