Рейтинг:
24
Abhinav S
Попробуй
DateTime dt1 = DateTime.ParseExact(time1, "HH:mm:ss", new DateTimeFormatInfo());
DateTime dt2 = DateTime.ParseExact(time2, "HH:mm:ss", new DateTimeFormatInfo());
TimeSpan ts = dt1.Subtract(dt2);
walterhevedeich
Правильно. 5ed.
alavee1
Простое и понятное решение.
Спасибо Абхинав С.
Sergey Alexandrovich Kryukov
Правильно, мой 5, но есть улучшение, пожалуйста, смотрите мое решение. Разве это не более ясно?
--СА
Abhinav S
Спасибо за 5 СА.
Рейтинг:
2
Sergey Alexandrovich Kryukov
Одно улучшение: в решении Абхинава гораздо лучше написать последнюю строку так:
TimeSpan ts = dt1 - dt2;
//yes, subtraction operator "-" is defined, of course
—СА
Dalek Dave
Объясните, почему лучше?
Серьезный вопрос, функционально они идентичны.
Sergey Alexandrovich Kryukov
Функциональность? Как насчет ремонтопригодности? Видимо, более читабельно, меньше путаницы, что из чего вычитается, нет необходимости запоминать название метода... Операторы не обязательно должны быть определены с чисто функциональной точки зрения, но они определены-по уважительным причинам.
Достаточно ли я объяснил?
--СА
Abhinav S
Любопытство - как это будет лучше?
Sergey Alexandrovich Kryukov
Я думаю, что это очевидно. Я уже объяснял выше.
--СА
Nagy Vilmos
Если это "улучшение", почему вы просто не улучшили ответ вместо того, чтобы создавать другой ответ?
Sergey Alexandrovich Kryukov
А почему бы и нет? Мы всегда так поступаем. Улучшение совершенно очевидно; я не вижу, какую проблему вы видите. Просто решили проголосовать против этой базы? Хм...
--СА
Nagy Vilmos
0. Я не голосовал.
1. ваше решение лучше /с вашей точки зрения/, но это не значит, что оно лучше для всех.
Jibesh
Я согласен с тобой, Надь, в этом вопросе.
Sergey Alexandrovich Kryukov
Вы, ребята, никогда не приводили мне рациональных аргументов. Я объяснил, почему это лучше, и вы не представили никаких аргументов против моего утверждения. "Та же функциональность" - это правда, но не аргумент. И " 1." кажется мне смешным. Конечно, если у меня есть твердое мнение, я стараюсь им поделиться. Чтобы сказать, что это не лучше, вам нужно объяснить только один пример, когда это не лучше и почему.
Спасибо.
—СА
Jibesh
Сергей это решение никогда не заслуживает "1" , но это решение-то же самое, что и другое решение во что бы то ни стало. поэтому то, что другие члены чувствуют, хорошо добавить, чтобы изменить этот результат к другому решению. Я считаю, что основная цель этого сайта состоит в том, чтобы поощрять друг друга к созданию лучшего сообщества программирования, развитию хорошего программиста и т. д., а не только для очков. Я действительно ценю вклад каждого участника в этот сайт с должным уважением.
Sergey Alexandrovich Kryukov
Я не спорю о форме поста и даже о голосах, даже близко не спорю. Я говорю только о стиле кодирования и связанных с ним вопросах. На самом деле, почему вас волнует, что я публикую отдельное решение? Приведите мне рациональные аргументы против моего взгляда на использование оператора. Если у вас нет возражений, давайте закроем его.
—СА
Рейтинг:
1
lamadipen
Без использования какой-либо функции SqlFunction
var grandTotalWork = (from t in db.AssignmentHandymandetails join ad in db.AssignmentDetails on t.assignment_detail_id equals ad.assignment_detail_id where ad.assignment_id == Convert.ToInt32(Label_assignmentId.Text) select new { startTime = t.started_time.Value.TimeOfDay, endTime = t.end_time.Value.TimeOfDay, TotalWorkTime = (t.started_time.Value.TimeOfDay.Duration() - t.end_time.Value.TimeOfDay.Duration()).Duration()});
затем вы можете привязать результат в GridView, который вы хотите