tôi có mã này để dành thời gian trong quá khứ và tạo chuỗi có thể đọc được để thể hiện khoảng thời gian trước đó.có cách thông minh hơn để tạo "thời gian từ" với đối tượng DateTime
Tôi đã nghĩ rằng Timespan.Hours sẽ cung cấp cho bạn giờ ngay cả khi ngày một nhiều trong quá khứ nhưng có vẻ như nó chia nhỏ thành các thành phần riêng biệt của nó (ngày, tháng, v.v ...). Làm thế nào tôi sẽ nhận được tổng số giờ trước (thậm chí nếu nó hơn 1 ngày?
Có cách nào sạch để viết loại mã dưới đây vì nó có vẻ khá spagetti-ish.
Đây là mã
DateTime when = GetDateTimeinPast();
TimeSpan ts = DateTime.Now.Subtract(when);
switch (ts.Days)
{
case 0:
if (ts.Hours < 1)
b.Append(ts.Minutes + " minutes ago");
else
b.Append(ts.Hours + " hours ago");
break;
case 1:
b.Append(" yesterday");
break;
case 2:
case 3:
case 4:
b.Append("on " + when.DayOfWeek.ToString());
break;
default:
b.Append(ts.Days + " days ago");
break;
}
Ngôn ngữ có thể giúp – TheLQ
Xuất hiện thành C#. –
@ Lord.Quackstar - cập nhật các thẻ và câu hỏi – leora