2013-09-18 5 views
-1

Я нахожусь в процессе построения диаграммы столбцов. Где ось й типа датаC# За каждый час, включая время

т.е.

день - Plotted в часах

Неделя - Plotted в днях

Месяц - Plotted в Неделях

Полугодовой - Plotted в Неделях

Ежегодно - Заселение в месяцах

У меня есть логика, как показано ниже для построения графика для дней

for (DateTime graphStartDate = startDate; graphStartDate < endDate; graphStartDate = graphStartDate.AddHours(1)) 

, например, это мой StartDate и дата окончания 10/10/2013 12:00:00 AM, 10/10/2013 9:32:00 PM. выше кода выберет график до 9:00 PM и оставьте это 30 минут (что также необходимо учитывать). Как написать цикл, который также будет включать в расчет. Это должно быть реализован в течение нескольких недель тоже, как я буду делать +7 дней, есть вероятность, я оставлю из 1 - 6 дней которые ценная информация для конечных пользователей

ответ

1

закруглить EndDate на следующий час/день/месяц

Пример

DateTime dt = DateTime.Now; 
Console.WriteLine(dt); 
//hour 
Console.WriteLine(dt.AddMinutes(60 - dt.Minute)); 
//day 
Console.WriteLine(dt.AddHours(24 - dt.Hour)); 
//week 
Console.WriteLine(dt.AddDays(7-(int)dt.DayOfWeek)); 
//month 
Console.WriteLine(dt.AddDays(DateTime.DaysInMonth(dt.Year,dt.Month)-dt.Day)); 

Берегитесь DayLightSavings

+0

как делает эту работу за год, неделю и месяц. Последняя строка кода за месяц? – Deeptechtons

+0

прокомментировал код. В основном вы добавляете разницу в часах/минутах, чтобы вы могли пройти через последний цикл. Надеюсь, это даст вам идею – CarbineCoder

Смежные вопросы