PDA

Просмотр полной версии : [Помогите!] Преобразовать секунды в часы:минуты


Gamer1912
29.12.2011, 03:12
Подскажите пожалуйста, есть число секунд например 10000, выводится допустим в
string sec = ... //код с помощью которого получается это значение
далее делаю
label1.Text = sec;
надо чтобы оно отобразилось не 10000, а 02(ч):47(мин), только без букв, это так пояснение. Заранее благодарен.

TeedI
29.12.2011, 04:59
только там не 2:47 а 2:40 :)
int sec = 10000;
int m = sec % 60;
int h = (sec / 60) / 60;
label1.Text = (h+":"+m).ToString();

Gamer1912
29.12.2011, 05:12
TeedI, Спасибо конечно, но это я знаю. Я не понимаю как "10000" заменить на спарсеный ответ и чтобы он уже преобразовался.
string time = parse(Response_POST, "<time>", "</time>", "");
label1.Text = time;

TeedI
29.12.2011, 05:15
Вопрос был как преобразовать секунды в часы.
Дайте полный ответ от сервера.

Gamer1912
29.12.2011, 05:27
TeedI, Ответ в сниффере
...
<battle_time>14287</battle_time>
...
Спарсил число (оно в секундах)
string time = parse(Response_POST, "<battle_time>", "</battle_time>", "");
Вывел в label
label1.Text = time;
Получилось label1 - 14287

А в чч:мм преобразовать не получается.
То есть ваш пример выше выдает ошибку, если написать так
int sec = time;
int m = sec % 60;
int h = (sec / 60) / 60;
label1.Text = (h+":"+m).ToString();
Много разных способов перепробовал, не помогает, все равно ошибка в коде.

TeedI
29.12.2011, 05:51
TeedI, Ответ в сниффере

Спарсил число (оно в секундах)

Вывел в label

Получилось label1 - 14287

А в чч:мм преобразовать не получается.
То есть ваш пример выше выдает ошибку, если написать так

Много разных способов перепробовал, не помогает, все равно ошибка в коде.

Какую ошибку?

Yukikaze
29.12.2011, 07:32
TimeSpan timeSpan = TimeSpan.FromSeconds(time);
string timeLast = string.Format("{0:D2}:{1:D2}:{2:D2}",
timeSpan.Hours,
timeSpan.Minutes,
timeSpan.Seconds);
выводит время в формате 00:00:00

Gamer1912
29.12.2011, 15:20
Yukikaze, Спасибо. Но и так я тоже пробовал, подчеркивает красным. TeedI, Это кстати и есть ошибка, про которую я говорил.
TimeSpan timeSpan = TimeSpan.FromSeconds(time);

Hermein
29.12.2011, 19:18
Gamer1912, при чем тут таймспан? Он тебе правильный код дал, руки сначала выпрямите, товарищ, а потом орите тут что все набы и ничо не правильно подсказали!

string time = parse(Response_POST, "<battle_time>", "</battle_time>", "");
int sec= Int32.Parse(time);
int m = sec % 60;
int h = (sec / 60) / 60;
label1.Text = (h+":"+m).ToString();

•theSaboteur•
29.12.2011, 19:48
Один момент - % это остаток от деления, тогда как требуется целая часть от деления..
min = (int)(sec/60);

Yukikaze
29.12.2011, 21:11
Gamer1912, начнем с того, что ты парсишь текст и записываешь его в переменную строчного типа, а таймспан принимает только переменные целочисленного типа.


TimeSpan timeSpan = TimeSpan.FromSeconds(Convert.ToInt32(time));//Таймспан НЕПРИНИМАЕТ текст, только переменные типа int
//Или TimeSpan.FromSeconds(Int32.Parse(time));
string timeLast = string.Format("{0:D2}:{1:D2}:{2:D2}",
timeSpan.Hours,
timeSpan.Minutes,
timeSpan.Seconds);

Первый варинт переводит строчную переменную в число, а второй выбирает только числа из строки //Второй вариант предпочтительней

PSТы хоть раз пытался прочитать ошибку, постоянно говорил о ней, но при этом если бы ты прочитал ее ты бы понял что преобразование string в int невозможно.

PPS Если в процесе выполнения вылетит эксепшн то ты парсишь с излишком, и в переменной хранится не только число но и фрагмент текста

Gamer1912
30.12.2011, 00:28
Yukikaze, У меня просто студия на английском языке.

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

Sinyss
30.12.2011, 04:17
Yukikaze, У меня просто студия на английском языке.

Для программиста вообще не оправдание...
Кодить без знаний англ. все равно что безрукому играть на баяне...

Gamer1912
30.12.2011, 07:12
Для программиста вообще не оправдание...
Кодить без знаний англ. все равно что безрукому играть на баяне...
Не спорю. Английский я знаю, но не в совершенстве. Ну коль так получилось, что не перевел ошибку на русский, бывает... ИМХО к тому интерес должен приветствоваться, земля круглая.