C #, как мне заставить часы работать с добавленными часами?

#c# #time #clock #timespan #hour

#c# #время #часы #промежуток времени #час

Вопрос:

Используя Visual Studio 2008 (C #), я должен создать рабочие часы (цифровые) с текущим часовым поясом и еще несколько с разными часовыми поясами, такими как Нью-Йорк и т.д.

внутри формы я помещаю 2 метки (для часов) и таймер, внутри таймера я помещаю этот код:

  timer1.Interval = 1000;

        label1.Text = DateTime.Now.ToLongTimeString();
        DateTime myDateTime = DateTime.Now;


        TimeSpan myTimeSpan = new TimeSpan(2, 0, 0);
        DateTime myDateTime8 = myDateTime   myTimeSpan;
        label2.Text = (""   myDateTime8);
  

часть с временным интервалом добавляет 2 часа к часам, однако вместо просто фактических часов я также получаю дату слева, как, например:

«17-05-2011 22:38:00»

Мне нужно знать, как я могу добавлять / вычитать часы и показывать только часы.

Ответ №1:

Вместо добавления временного интервала просто вызовите метод AddHours:

 myDateTime.AddHours(2).ToLongTimeString();
  

Комментарии:

1. Фантастика! Так просто, но сработало отлично, большое вам спасибо за быстрый и точный ответ 😉

Ответ №2:

myDateTime.Функция ToShortTimeString() вернет вам только время

или, как Tejs упоминалось, вы можете использовать ToLongTimeString() то, что, я думаю, больше соответствует вашим требованиям.

Для добавления или вычитания часов вы можете использовать dateTime.AddHours(even hours in negative) или для вычитания вы также можете использовать dateTime.Subtract(time to subtract)

Ответ №3:

Используя .Метод toString() метода timespan позволяет вам выводить дату в любом формате, который вы хотите. Смотрите http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

Ответ №4:

  1. Для ваших потребностей в часовом поясе используйте подход, аналогичный тому, который предложен в этой статье MSDN. Примечательно:
    1. Используйте ConvertTimeToUtc для получения времени UTC перед выполнением каких-либо арифметических действий.
    2. Выполните необходимые арифметические действия.
    3. Преобразовать обратно в местное время с помощью TimeZoneInfo.ConvertTime .
  2. Чтобы получить только временную часть DateTime , используйте DateTime.ToShortTimeString() . Обратите внимание, что это зависит от культуры, поэтому, если вам нужен фиксированный формат, рассмотрите возможность использования DateTime.ToString() для указания формата.