#c# #wpf
#c# #wpf
Вопрос:
Я хотел бы отобразить цифровые часы.Вот что мне нужно для отображения времени в текстовом блоке в 24-часовом формате, который я не знаю, как преобразовать в 12 часов.
DispatcherTimer timerdigital;
public MainWindow()
{
this.InitializeComponent();
//StartTimer(null, null);
timerdigital = new DispatcherTimer();
timerdigital.Interval = TimeSpan.FromSeconds(1.0);
timerdigital.Start();
timerdigital.Tick = new EventHandler(delegate(object s, EventArgs a)
{
tbDigital.Text = "" DateTime.Now.Hour ":"
DateTime.Now.Minute ":"
DateTime.Now.Second;
});
Спасибо
Комментарии:
1. Соображение (возможно, незначительное, возможно, нет, в зависимости от целевой аудитории вашего приложения): 8-сегментные дисплеи будут иметь смысл только в тех странах, где используются арабские цифры. Смотрите: blogs.msdn.com/b/oldnewthing/archive/2007/07/25/4036123.aspx
Ответ №1:
Не знаю о цифровом отображении, но для переключения на 12-часовые часы с 24-часовых самым простым подходом было бы использовать форматирование строки DateTime:
timerdigital.Tick = new EventHandler(delegate(object s, EventArgs a)
{
tbDigital.Text = DateTime.Now.ToString("hh:mm:ss tt");
});
Здесь hh
указаны часы в 12-часовом формате, mm
это минуты, ss
это секунды и tt
это маркер утра / вечера.
Смотрите больше о строках формата даты и времени здесь.
Ответ №2:
Вот хороший готовый к использованию исходный код для wpf:
http://www.codeproject.com/KB/WPF/digitalclock.aspx
О формате 12/24 часов:
int smallhour = (Hour > 12) ? Hour - 12 : Hour;