Как да получа разлика от 24-часов формат на времето?

Имам две времена (получавам от Time Picker)

Time1=22:10
Time2=05:10

обща разлика във времето, която ми трябва като 07:00

Например от 10:10 pm до 05:10 am има разлика от 7 часа. По същия начин питам как да намеря дали е в 24-часов формат?

Как мога да го постигна? След 12 часа съм добре. Но не знам как да го направя в 24-часов формат?? Това е уеб приложение.


person Semil Sebastian    schedule 20.02.2015    source източник
comment
Със сигурност има някакво свойство, което можете да зададете, или някакъв формат, който можете да анализирате. Разгледайте и NodaTime в github   -  person Callum Linington    schedule 20.02.2015
comment
Вашият въпрос е за 12-часовия формат, но казвате, че 12-часовият формат е добър? Да не си объркал и двата случая?   -  person Mario    schedule 20.02.2015
comment
Часовата разлика 7:00 или 17:00 часа ли е?   -  person SelvaS    schedule 20.02.2015
comment
@SelvaTS Предполагам, че вторият път винаги е по-късно от първия.   -  person Mario    schedule 20.02.2015
comment
Току-що го видях... 22:10 следобед не е не валиден час. Или е 22:10 или 22:10.   -  person Mario    schedule 20.02.2015
comment
@Mario в този случай, тогава трябва да добавим още един ден и да извадим предишната дата.   -  person SelvaS    schedule 20.02.2015
comment
@Марио, неговият 24-часов формат показва времето 22:10 ч. (означава 22:10 ч.) и 05:10 ч. сутринта.   -  person Semil Sebastian    schedule 20.02.2015
comment
Трябва да обясниш малко повече какъв всъщност е проблемът. Имам същия проблем като Selva. Не знаете дали Time2 е винаги › от Time1 или може да е по-рано.   -  person Jannik    schedule 20.02.2015
comment
@SaraJohn Не, 24-часовият формат не познава AM или PM - трябва да не е там. Трябва да знам, аз съм от добрата стара Германия и повечето хора дори не могат да се справят с 12-часов формат (това е като обърнато в сравнение с САЩ :D).   -  person Mario    schedule 20.02.2015
comment
@Марио, извинете, редактирах въпроса си   -  person Semil Sebastian    schedule 20.02.2015
comment
Може би това може да ви помогне stackoverflow.com/questions/3993226/   -  person    schedule 20.02.2015


Отговори (1)


Форматирането само се прилага, когато се опитате да получите низово представяне на вашия DateTime или вашия TimeSpan. Разликата между тези два типа екземпляри не оказва влияние върху форматирането.

Ако тези стойности са TimeSpan като;

TimeSpan ts1 = new TimeSpan(22, 0, 0);
TimeSpan ts2 = new TimeSpan(7, 0, 0);
TimeSpan result = ts1 - ts2;

result ще бъде {15:00:00} като TimeSpan, което има 15 като Hour собственост.

Между другото форматите AM/PM се прилагат само за DateTime стойности, а не за TimeSpan. TimeSpan е интервал от време.

Например; не можем да кажем преди обяд или след обяд за стойност TimeSpan, защото изобщо няма смисъл.

Ако имате DateTime стойности като тези (и мисля, че тези примери ще съвпадат с вашите стойности, тъй като искате да получите 7 часа разлика между 22:10 и 05:10)

DateTime dt1 = new DateTime(2015, 2, 21, 5, 10, 0);
DateTime dt2 = new DateTime(2015, 2, 20, 22, 10, 0);
TimeSpan result = dt1 - dt2;

result ще бъде {07:00:00} като TimeSpan, което има 7 като Hour свойство.

person Soner Gönül    schedule 20.02.2015
comment
Това всъщност е интересен подход, като и двете времена са времеви интервали. Като се има предвид, че датата няма значение, това е някак добре. :) - person Mario; 20.02.2015
comment
@Mario Да, дори и да са DateTime тяхното изваждане ще бъде TimeSpan като резултат. Тъй като TimeSpan е интервал от време, той не може да има AM/PM част, дори ако го форматираме. Не можем да кажем преди обяд или след обяд като TimeSpan стойност. - person Soner Gönül; 20.02.2015
comment
@SaraJohn Тези Time1 и Time2 стойности DateTime ли са? Мисля, че вашият Time2 е един ден след Time1, тъй като искате да получите 7 часа като разлика. Актуализирах отговора си. Погледни. - person Soner Gönül; 20.02.2015
comment
@Soner Gönül, не е DateTime тази стойност, която извличам от инструмента за избор на време ccl - person Semil Sebastian; 20.02.2015
comment
@SaraJohn Ако са string, можете да ги анализирате първо с DateTime или TimeSpan първо. И двата типа имат Parse методи. Можете да проверите техните документи. - person Soner Gönül; 20.02.2015
comment
@Soner Gönül, благодаря ви за подкрепата. Аз намерих решение за това, което добавих по-долу. Моля, проверете дали е полезно или не.. - person Semil Sebastian; 20.02.2015
comment
Нека продължим тази дискусия в чата. - person Semil Sebastian; 20.02.2015