Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как отнять одно время от другого на C#, и получить результат в часах 
:(
    Опции темы
Teran
  Дата 9.6.2006, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 590
Регистрация: 9.9.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: 3



Как на C# отнять одно время от другого и получить результат в часах?
такой вот код почемуто ругается
Код

            DateTime Tim= new DateTime(2006,1,1,0,0,0);
            DateTime Tim1= new DateTime(2006,1,1,0,0,0);
  
            Tim=Tim.AddMinutes(120);

            Tim=Tim-Tim1;  // Вот так не получается отнять

            MessageBox.Show(Tim.ToString("hh:mm tt"));

 smile  smile  smile  


--------------------
Ни цего не понимаю
PM MAIL ICQ   Вверх
HalkaR
Дата 9.6.2006, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 14
Всего: 42



Код

            DateTime a = new DateTime();
            DateTime b = new DateTime();

            TimeSpan ts = a.Subtract(b);
            return ts.TotalHours;
 
PM MAIL   Вверх
Teran
Дата 9.6.2006, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 590
Регистрация: 9.9.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: 3



а почему нельзя перевести его в double отнять а затем - обратно в DateTime (как в delphi например)??? 


--------------------
Ни цего не понимаю
PM MAIL ICQ   Вверх
HalkaR
Дата 9.6.2006, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 14
Всего: 42



Teran, можно и отнять, но тогода у тебя не будет возможности получить разницу в часах. Собственно обьект TimeSpan предназначен для разниц во времени и удобен для этого. 
PM MAIL   Вверх
ivashkanet
Дата 9.6.2006, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Цитата(Teran @  9.6.2006,  10:59 Найти цитируемый пост)
перевести его в double отнять

Только если перевести в DateTime.Ticks --- время в 100-х наносекунд (10^-9=нано) с начала века (помоему прошлого). Тип результата -- long 
Можно отнять эти тики, а потом назад в датутайму залить (не пробовал). 
PM MAIL WWW ICQ   Вверх
Сарт
Дата 15.6.2006, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 29.4.2006

Репутация: 1
Всего: 0



Могу предложить свой вариант,только не уверен покатит или нет с DataTime.
Итак,создаем 3 переменных(ну или 2,кому как нравиться).
h-часы
m-минуты

Код

string h;
string m;
string h1;
string m1;
int rezulth;
int rezultm 
Console.WrileLine("Введите часы");
h=Console.Readline();
Console.WriteLine("Введите минуты");
m=Console.Readline();

Console.WrileLine("Введите часы");
h1=Console.Readline();
Console.WriteLine("Введите минуты");
m1=Console.Readline();

rezulth=Convert.ToInt32(h)-Convert.ToInt32(h1);
rezultm=Convert.ToInt32(m)-Convert.ToInt32(m1);

Ну тут всякие проверки и т.д. К вычитанию мона еще добавить и abs ,чобы отрицалова не получилось=)

Console.WriteLine("Результат {0} часов {1} минут",Convert.ToStr(rezulth),ConvertToStr(rezultm));


Прошу строго не судить, сам работоспособность не проверял, лениво Студию грузить....Но походу пахать должно. 
--------------------
[color=purple][/color]Died.Of course, System.StackOverflow 
PM MAIL   Вверх
mr.DUDA
Дата 15.6.2006, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



мой вариант - круче всех и самый короткий:

Код
int numHours = (time1 - time2).TotalHours
 
smile  


--------------------
user posted image
PM MAIL WWW   Вверх
Сарт
Дата 15.6.2006, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 29.4.2006

Репутация: 1
Всего: 0



Зато мой--работает практически на любом языке=). Где есть функция перевода из стринга в инт и наоборот=) 
--------------------
[color=purple][/color]Died.Of course, System.StackOverflow 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0498 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.