C #, как мне заставить часы работать с добавленными часами? - PullRequest
0 голосов
/ 18 мая 2011

Используя 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"

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

Ответы [ 4 ]

2 голосов
/ 18 мая 2011

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

myDateTime.AddHours(2).ToLongTimeString();
1 голос
/ 18 мая 2011

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

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

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

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

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

...