Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
9 / 9 / 4
Регистрация: 07.12.2011
Сообщений: 120
1

WPF.NET. Преобразование количества секунд в формат чч.мм.сс

08.12.2011, 00:44. Показов 2774. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
На форме WPF размещены TextBox1, TextBox2 и кнопка Button1. TextBox1 содержит значение (к примеру) “80”, подразумевается общее количество секунд, без разбиения на минуты и часы. Какое необходимо преобразование, (в C#) чтобы при нажатии кнопки Button TextBox2 изобразил время в формате Time, т. е. “0:1:20”? Заранее весьма благодарен.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.12.2011, 00:44
Ответы с готовыми решениями:

Перевод количества секунд в нормальный формат времени
Проблема такая: есть количество секунд, например, 6000 сек, а надо получить время в формате...

Перевод показаний секундомера из количества секунд в формат Ч:ММ:СС
Условие Цифровой секундомер может показывать измеренное время по-разному. Например, в виде...

Что выбрать - WPF .Net Core или WPF .Net Framework + буду работать с SQLite (также интересно какую версию БД выбрать)?
Всем привет. Ниже необязательная предыстория, высказался просто) Тут наконец вновь взялся за...

Формат DateTime без секунд
У меня есть datagridView, в поле которого (дата) я записываю значения типа dateTime. Именно...

8
47 / 47 / 6
Регистрация: 09.11.2010
Сообщений: 308
08.12.2011, 02:27 2
C#
1
2
3
4
5
6
7
int time = Convert.ToInt32( TextBox1.Text ); //total time in seconds
int hours = time / 3600;
time %= 3500;
int minutes = time % 60;
time %= 60;
int seconds = time;
TextBox2.Text = hours.ToString() + ":" + minutes.ToString() + ":" + seconds.ToString();
и это всё в обработчике нажатия кнопки
0
38 / 38 / 8
Регистрация: 29.05.2011
Сообщений: 65
08.12.2011, 08:23 3
C#
1
2
3
4
5
 private void button1_Click(object sender, RoutedEventArgs e)
        {
            TimeSpan interval = TimeSpan.FromSeconds(Convert.ToDouble(textBox1.Text));
            textBox2.Text = interval.Hours.ToString() + ":" + interval.Minutes.ToString() + ":" + interval.Seconds.ToString();
        }
Так немножко красивей
0
84 / 84 / 10
Регистрация: 20.05.2011
Сообщений: 145
08.12.2011, 12:12 4
Цитата Сообщение от zabej Посмотреть сообщение
C#
1
2
3
4
5
 private void button1_Click(object sender, RoutedEventArgs e)
        {
            TimeSpan interval = TimeSpan.FromSeconds(Convert.ToDouble(textBox1.Text));
            textBox2.Text = interval.Hours.ToString() + ":" + interval.Minutes.ToString() + ":" + interval.Seconds.ToString();
        }
Так немножко красивей
А можно ещё:
C#
1
 textBox2.Text = interval.ToString();
0
38 / 38 / 8
Регистрация: 29.05.2011
Сообщений: 65
08.12.2011, 12:27 5
SpiritRI R, вообще четко будет))))
0
9 / 9 / 4
Регистрация: 07.12.2011
Сообщений: 120
08.12.2011, 16:30  [ТС] 6
В коде, написанном М А К, редактор почему-то ругается сообщением «Элемент TextBox1
(как и TextBox2) не существует в текущем контексте». Код, написанный zabej заработал сразу. Ещё раз благодарю всех, кто откликнулся на мою просьбу.
0
47 / 47 / 6
Регистрация: 09.11.2010
Сообщений: 308
08.12.2011, 16:35 7
Цитата Сообщение от KeysVS Посмотреть сообщение
В коде, написанном М А К, редактор почему-то ругается сообщением «Элемент TextBox1
(как и TextBox2) не существует в текущем контексте».
вы писали:
Цитата Сообщение от KeysVS Посмотреть сообщение
На форме WPF размещены TextBox1, TextBox2
я и использовал TextBox1 и TextBox2. По всей видимости, первая буква название элементов у вас написана в нижнем регистре, как писали zabej и SpiritRI, потому компилятор и ругается.
0
9 / 9 / 4
Регистрация: 07.12.2011
Сообщений: 120
09.12.2011, 13:15  [ТС] 8
Уважаемый М А К! Вы оказались правы. После внесения Вашей коррективы, всё заработало! Да здравствует коллективный разум!

Добавлено через 13 часов 17 минут
Уважаемый М А К! Когда Ваш код заработал, вначале я не обратил внимание на то, как он работает. Работает он весьма загадочно: например при значениях TextBox1 = “80” TextBox2 = “0:20:20”, соответственно TextBox1 = “60” TextBox2 = “0:0:0”, TextBox1 = “160” TextBox2 = “0:40:40” ну и так далее. На моём компьютере стоит версия Visual Studio Ultimate 2010.

Добавлено через 25 минут
Присмотревшись ещё раз к Вашему коду я нашёл ошибку, вернее «описку»: в 4-й строчке вместо int minutes = time % 60; нужно int minutes = time / 60; - теперь всё работает правильно. За правильное направление мысли ещё раз спасибо.
1
47 / 47 / 6
Регистрация: 09.11.2010
Сообщений: 308
10.12.2011, 00:58 9
Ещё раз присмотревшись к своему коду, я также нашёл описку: в третей строчке нужно брать остаток от деления на 3600, а не 3500
Дело в том, что я свой код писал в блокноте, на скорую руку.
А насчёт идеи - подход с TimeSpan, скорее всего, будет более правильным. Моя идея больше походит на изобретение велосипеда. Однако, мой вариант будет работать незначительно, но быстрее
0
10.12.2011, 00:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.12.2011, 00:58
Помогаю со студенческими работами здесь

Библиотека NETSquirrel для .NET и .NET Core - формат вывода индексаторов
Предположим, что мы выводим через AutoPrintLine все поля, свойства и индексаторы экземпляра...

Преобразование секунд в минуты
Помогите решить. От начала турнира з програмирования прошло N (N<100000) секунд. Найди сколько...

Преобразование секунд в года
Добрый день, господа! Есть задача, вывести количество лет, месяцев, дней, часов, минут и секунд....

подсчет количества секунд
нужно узнать сколько секунд осталось до даты 2016/1/21/-13/10/34 (год/месяц/день/-часы/мин/сек)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru