Цифровые часы —

#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;