Tôi đang thực hiện một biểu đồ bao phủ "1930-1940", "1940-1950", "1950-1960", "1960-1970", ...
Đây có phải là cách tốt nhất để đại diện cho thập kỷ với TimeSpan không?
tôi muốn đại diện cho điều này với một DateTime
và Timespan
, nhưng tôi không thực sự chắc chắn làm thế nào để làm cho TimeSpan
, và tôi thấy khó để xác minh nếu timespans của tôi đúng.
Đây có phải là cách tôi nên sử dụng TimeSpan
hoặc chồng chéo không? Nếu nó trùng lặp thì làm thế nào tôi có thể sửa nó?
List<DateTime> list1 = new List<DateTime>();
List<TimeSpan> list2 = new List<TimeSpan>();
int startYearInt = 1930;
int times = 0;
const int intervalSize = 10;
for (int i = startYearInt; i < 2020; i += intervalSize)
{
DateTime sYear = new DateTime(startYearInt + (intervalSize * times++), 1, 1);
TimeSpan period = (sYear.AddYears(intervalSize)) - sYear;
list1.Add(sYear);
list2.Add(period); // <<-- Don't know if if this is correct?
}
EDIT: Tôi cũng có điều này. Và nếu khoảng thời gian của tôi quá nhỏ hoặc cuối cùng thì nó có thể gây ra một số vấn đề.
public bool IsInsidePeriod(DateTime dt)
{
return dt >= FromYearDateTime && dt < FromYearDateTime.Add(periodTimeSpan);
}
tại sao bạn không chỉ đại diện cho họ như ints? –
Tại sao DateTime _and_ TimeSpan? Tất cả bạn cần là n + 1 giá trị DateTime. –
A 'TimeSpan' đơn giản và số lượng là thời gian, không gắn liền với bất kỳ điểm nào trong thời gian (một khoảng thời gian 10 năm chỉ là - nó có thể là một khoảng 10 một thế kỷ trước hoặc một thiên niên kỷ do đó). – Oded