|
Как вычислить разницу двух Date в формате h:mm:ss
|
|||
---|---|---|---|
#18+
В VB6 было грубо так: Код: vbnet 1. 2. 3. 4. 5. 6. 7.
Ругается на вычитание двух Date. Невозможно преобразовать System.TimeSpan в Date. Как правильно? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 00:28 |
|
Как вычислить разницу двух Date в формате h:mm:ss
|
|||
---|---|---|---|
#18+
Разница между двумя датами - не есть дата. Разница - это разница, РАССТОЯНИЕ. В VB6 это было сделано через ж...у, фактически, ты просто должен был понимать, что в основе лежит тупо числовое значение даты В .NET разница между двумя датами - это другой тип - TimeSpan. Поэтому просто смотри на его свойства методы - в зависимости от того, что ты от него хочешь. ЗЫ: Забудь про функции, в .NET все делается методами класса, это удобней, проще, логичней и intellisens-нее ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 00:47 |
|
Как вычислить разницу двух Date в формате h:mm:ss
|
|||
---|---|---|---|
#18+
грубо говоря (на шарпе): Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 00:52 |
|
Как вычислить разницу двух Date в формате h:mm:ss
|
|||
---|---|---|---|
#18+
Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 00:56 |
|
Как вычислить разницу двух Date в формате h:mm:ss
|
|||
---|---|---|---|
#18+
Shocker.Pro, Что сказать, мудрено. Мне надо. В БД хранится start_time и end_time как дата/время, отображать надо duration(string)=end_time -start_time формата h:mm:ss (не может там больше 24 часов быть по определению, да и h обычно 0). Не догадался в свое время этот duration сразу считать и в БД хранить, поэтому считаю динамически. На VB.Net вот так вроде эквивалент получился, @ не надо: Код: vbnet 1.
Сойдет? Честно, не об этих мелочах счас голова болит. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 01:30 |
|
Как вычислить разницу двух Date в формате h:mm:ss
|
|||
---|---|---|---|
#18+
с учетом того, что операция вычитания для структуры DateTime перегружена, то это - то же самое Я просто уже отвык использовать самостоятельные функции, использую исключительно методы типов. Даже для стандартных статических методов типа string.Join и string.Format делаю методы расширения, чтобы легко и непринужденно писать цепочки методов и не прыгать в начало цепочки заради применения какой-то функции. Такая запись гораздо легче читается слева направо - не приходится перечитывать строку, выискивать, где там закончилась скобка от функции Format, что снаружи, что внутри... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 01:39 |
|
Как вычислить разницу двух Date в формате h:mm:ss
|
|||
---|---|---|---|
#18+
Shocker.ProДаже для стандартных статических методов типа string.Join и string.Format делаю методы расширения, чтобы легко и непринужденно писать цепочки методов и не прыгать в начало цепочки заради применения какой-то функции. Такая запись гораздо легче читается слева направо - не приходится перечитывать строку, выискивать, где там закончилась скобка от функции Format, что снаружи, что внутри... Статические методы стринга вообще неудачно спроектированы, особенно формат. Кажется как минимум половина программеров на шарпее пишут свои удобные экстеншены. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 02:00 |
|
Как вычислить разницу двух Date в формате h:mm:ss
|
|||
---|---|---|---|
#18+
Код: vbnet 1.
Сойдет? Не сойдет. Не удовлетворяет критерию обратной совместимости с Net 2-3.5. Другое что-то надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 06:37 |
|
Как вычислить разницу двух Date в формате h:mm:ss
|
|||
---|---|---|---|
#18+
Дмитрий77Не удовлетворяет критерию обратной совместимости с Net 2-3.5. С какого это перепугу не удовлетворяет? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 07:49 |
|
Как вычислить разницу двух Date в формате h:mm:ss
|
|||
---|---|---|---|
#18+
Вот так попытался: Код: vbnet 1.
Но он гад вместо 0:01:14 пишет 12 :01:14 Если не Format-ить, т.е. Код: vbnet 1.
то пишет 0 :01:14 но я б на такую автоматику не закладывался, на некоторых нац. системах может точки поставить а не двоеточья как разделители и хз чего еще. А здесь мне надо четко h:mm:ss (0:00:16; 1:15:02; 10:00:01) с разделителем ' : ' М.б. свою ф-цию типа Код: vbnet 1. 2. 3. 4.
Вроде фурычит как надо. Сойдет? авторВ VB6 это было сделано через ж...у Зато работало железно, а не через это самое место. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 07:51 |
|
Как вычислить разницу двух Date в формате h:mm:ss
|
|||
---|---|---|---|
#18+
hVosttС какого это перепугу не удовлетворяет? В .Net 2-3.5 Нету этого перегруза .ToString("format" as String) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 07:54 |
|
Как вычислить разницу двух Date в формате h:mm:ss
|
|||
---|---|---|---|
#18+
свойства TimeSpan - часы,минуты,секунды - доступны - сформатируй строку из них (одной строкой кода) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 08:57 |
|
Как вычислить разницу двух Date в формате h:mm:ss
|
|||
---|---|---|---|
#18+
Изопропилсвойства TimeSpan - часы,минуты,секунды - доступны - сформатируй строку из них (одной строкой кода) А по-другому и не получится - во 2-м фреймворке TimeSpan не реализует IFormattable. Как в 3/3.5 - не смотрел. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 09:13 |
|
Как вычислить разницу двух Date в формате h:mm:ss
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныИзопропилсвойства TimeSpan - часы,минуты,секунды - доступны - сформатируй строку из них (одной строкой кода) А по-другому и не получится - во 2-м фреймворке TimeSpan не реализует IFormattable. Как в 3/3.5 - не смотрел. У меня во втором фреймворке это работает: Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 09:33 |
|
Как вычислить разницу двух Date в формате h:mm:ss
|
|||
---|---|---|---|
#18+
Arm79, формат - "{0:D2}:{1:D2}:{2:D2}" наверное ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 10:25 |
|
Как вычислить разницу двух Date в формате h:mm:ss
|
|||
---|---|---|---|
#18+
ИзопропилArm79, формат - "{0:D2}:{1:D2}:{2:D2}" наверное {0}:{1:D2}:{2:D2} - так правильнее, "str_duration = Format(CDate(EndTime - StartTime), " h:mm:ss ")" ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 10:37 |
|
Как вычислить разницу двух Date в формате h:mm:ss
|
|||
---|---|---|---|
#18+
Arm79У меня во втором фреймворке это работает Ну так я и написал, что только это и будет работать. Форматирование по маскам во втором фреймворке не работает, т.к. у TimeSpan не реализован IFormattable (а у int вполне реализован). ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 10:54 |
|
Как вычислить разницу двух Date в формате h:mm:ss
|
|||
---|---|---|---|
#18+
Изопропилсвойства TimeSpan - часы,минуты,секунды - доступны - сформатируй строку из них А я разве уже не сделал. Дмитрий77свою ф-цию типа Код: vbnet 1. 2. 3. 4.
можно как вы предлагаете: Код: vbnet 1. 2. 3. 4.
И в чем преимущество? Кроме более модной записи формата? Изопропил(одной строкой кода) Если не вычислять (endDate - startDate)==endDate.Subtract(startDate) трижды что не есть гуд, то одной строкой не получится (одной конечно бы хотелось, не люблю для элементарщины функции или лишние переменные клепать). ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 16:00 |
|
Как вычислить разницу двух Date в формате h:mm:ss
|
|||
---|---|---|---|
#18+
Дмитрий77И в чем преимущество? Кроме более модной записи формата? Строка не копируется в памяти при каждой конкатенации. Так как стандартная функция Format использует StringBuilder. То, что в .NET строки "immutable" - вам что-нибудь говорит? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 16:15 |
|
Как вычислить разницу двух Date в формате h:mm:ss
|
|||
---|---|---|---|
#18+
D129, Ответь лучше по-простому. На этом варианте остановиться? Код: vbnet 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 16:35 |
|
Как вычислить разницу двух Date в формате h:mm:ss
|
|||
---|---|---|---|
#18+
Дмитрий77то одной строкой не получится получится :) Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 16:42 |
|
Как вычислить разницу двух Date в формате h:mm:ss
|
|||
---|---|---|---|
#18+
Дмитрий77D129, Ответь лучше по-простому. На этом варианте остановиться? Код: vbnet 1. 2. 3. 4.
Да. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 16:42 |
|
Как вычислить разницу двух Date в формате h:mm:ss
|
|||
---|---|---|---|
#18+
Я использую string.Format() всегда. Хотя справедливости ради, нашелся случай, когда эта функция не может сделать то, что нужно. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 16:45 |
|
Как вычислить разницу двух Date в формате h:mm:ss
|
|||
---|---|---|---|
#18+
D129Дмитрий77И в чем преимущество? Кроме более модной записи формата? Строка не копируется в памяти при каждой конкатенации. Так как стандартная функция Format использует StringBuilder. То, что в .NET строки "immutable" - вам что-нибудь говорит? Если бы всё было так просто . Еще можно посмотреть обсуждение здесь: http://stackoverflow.com/questions/16432/string-output-format-or-concat-in-c Люди достаточно обоснованно утверждают, что при небольших объемах сцепляемых строк конкатенация - быстрее, чем Format. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 17:42 |
|
Как вычислить разницу двух Date в формате h:mm:ss
|
|||
---|---|---|---|
#18+
Сон Веры Павловнычто при небольших объемах сцепляемых строк конкатенация - быстрее, чем Format. они учитывали предварительные вызовы Format до конкатенации? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 17:57 |
|
Как вычислить разницу двух Date в формате h:mm:ss
|
|||
---|---|---|---|
#18+
D129Дмитрий77D129, Ответь лучше по-простому. На этом варианте остановиться? Код: vbnet 1. 2. 3. 4.
Да.Нет. Надо ещё для каждого аргумента, что передаётся в String.Format (кроме первого конечно), вызвать ToString(), так трафик меньше будет :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 09:06 |
|
Как вычислить разницу двух Date в формате h:mm:ss
|
|||
---|---|---|---|
#18+
skyANAНадо ещё для каждого аргумента, что передаётся в String.Format (кроме первого конечно), вызвать ToString(), так трафик меньше будет :) Смысл? Даже если это почему-то и "ускорит", то это крошки. Код: vbnet 1. 2. 3. 4. 5.
И кстати я заметил, что в нек. случаях .ToString() выдает совсем не то, что интуитивно ожидаешь. В отличии от классического CStr(). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 18:49 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1401863]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
14ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 361ms |
total: | 501ms |
0 / 0 |