Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# для начинающих

Войти
Регистрация
Восстановить пароль
 
Kanat-aga
0 / 0 / 0
Регистрация: 11.06.2016
Сообщений: 28
#1

Как строку 00:47:15 преобразовать в секунды? - C#

28.07.2017, 21:01. Просмотров 203. Ответов 11
Метки нет (Все метки)

Как строку 00:47:15 преобразовать в секунды?

C#
1
double seconds =  TimeSpan.Parse("00:47:15").TotalSeconds;
Этот код не работает, вроде формат неправильно задан, подскажите как преобразовать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2017, 21:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как строку 00:47:15 преобразовать в секунды? (C#):

Как преобразовать массив в строку? - C#
string str = Console.ReadLine(); string words = str.Split(new char{' ',',', '.', '!', '?'}); ...

Как преобразовать число в строку? - C#
У меня такой вопрос. Есть число например 2525 Как из него получить строку "2525" ???

Как преобразовать строку в DirectoryInfo? - C#
Как преобразовать строку в DirectoryInfo? string Mypath = @"C:\APD_UpdateTool"; Mypath = Mypath + "folderMy"; ...

Как список преобразовать в строку? - C#
Здравствуйте. Нужно записать в файл информацию, которая представлена в виде списка(List<>), но напрямую ничего не получается,поэтому прошу...

Как преобразовать байтовый массив в строку? - C#
Здравствуйте. Мне уже стыдно писать в этот раздел, но без вашей помощи я снова пропаду. Помогите, пожалуйста. - Преобразуйте...

Как преобразовать строку в массив символов - C#
Подскажите пожалуйста, в данной программе пользователь вводит символ и получает закодированный символ. Нужно чтобы пользователь мог вводить...

11
Fleder
97 / 60 / 25
Регистрация: 09.12.2015
Сообщений: 287
28.07.2017, 21:04 #2
Цитата Сообщение от Kanat-aga Посмотреть сообщение
Этот код не работает
У меня работает.
0
proghelp4you
58 / 58 / 28
Регистрация: 09.07.2017
Сообщений: 309
28.07.2017, 21:09 #3
Kanat-aga, да, у вас все абсолютно правильно написано.
0
ViterAlex
6190 / 3393 / 1030
Регистрация: 11.02.2013
Сообщений: 7,488
Завершенные тесты: 3
28.07.2017, 21:53 #4
Kanat-aga, тебе нужно общее количество секунд или только секунды? Быстрее будет парсить, если указать формат, в котором данные заданы:
C#
1
TimeSpan.ParseExact("00:47:15", @"hh\:mm\:ss", CultureInfo.CurrentCulture).Seconds
0
Kanat-aga
0 / 0 / 0
Регистрация: 11.06.2016
Сообщений: 28
28.07.2017, 21:59  [ТС] #5
C#
1
2
string s = "0:47:15";
double seconds =  TimeSpan.Parse(s).TotalSeconds;
У меня строка s принимает другой формат, часы, бывает 01:12:09, тогда нормально работает, а бывает 0:33:52, тогда ошибка. Время выдергиваю из текста, как быть?

Добавлено через 1 минуту
Мне нужно общее кол-во секунд.
0
ViterAlex
6190 / 3393 / 1030
Регистрация: 11.02.2013
Сообщений: 7,488
Завершенные тесты: 3
28.07.2017, 22:10 #6
Цитата Сообщение от Kanat-aga Посмотреть сообщение
Время выдергиваю из текста, как быть?
Всё должно работать:
C#
1
2
3
4
5
6
7
8
9
10
var times = new[]
{
    "00:45:12",
    "0:45:12",
    "0:3:5"
};
foreach (var item in times)
{
    Console.WriteLine($"{item} = {TimeSpan.Parse(item).TotalSeconds}");
}
У тебя в системе какой формат времени задан? Может какой-то экзотический?
0
Kanat-aga
0 / 0 / 0
Регистрация: 11.06.2016
Сообщений: 28
28.07.2017, 22:28  [ТС] #7
Цитата Сообщение от ViterAlex Посмотреть сообщение
У тебя в системе какой формат времени задан? Может какой-то экзотический?
Пишу в windows forms подключил using System.Threading
C#
1
2
string st = "0:47:15";
double seconds = TimeSpan.Parse(s).TotalSeconds;
Вот так если написать часы, то приложение выдает ошибку "Входная строка имела неверный формат.".
0
ViterAlex
6190 / 3393 / 1030
Регистрация: 11.02.2013
Сообщений: 7,488
Завершенные тесты: 3
28.07.2017, 22:39 #8
Цитата Сообщение от Kanat-aga Посмотреть сообщение
подключил using System.Threading
Потоки здесь ни к чему. TimeSpan находится в пространстве System.
Цитата Сообщение от Kanat-aga Посмотреть сообщение
Вот так если написать часы, то приложение выдает ошибку "Входная строка имела неверный формат."
Ошибка связана с тем, что в системе задан другой формат времени, не hh:mm:ss. Решается это использованием ParseExact и указанием конкретной культуры. А какие строки нормально парсятся?
0
Kanat-aga
0 / 0 / 0
Регистрация: 11.06.2016
Сообщений: 28
28.07.2017, 22:47  [ТС] #9
Цитата Сообщение от ViterAlex Посмотреть сообщение
А какие строки нормально парсятся?
Я же писал, если
C#
1
string st = "01:44:22";
то нормально работает, получается если формат hh:mm:ss, то все работает, если формат h:mm:ss, то ошибка.
0
ViterAlex
6190 / 3393 / 1030
Регистрация: 11.02.2013
Сообщений: 7,488
Завершенные тесты: 3
28.07.2017, 22:53 #10
Цитата Сообщение от Kanat-aga Посмотреть сообщение
если формат h:mm:ss, то ошибка
Если только в этом формате ошибка, то нужно его привести к тому, в котором нет ошибки, добавив 0 перед ним:
C#
1
st = st.Insert(0, "0");
1
Diamante
1067 / 783 / 274
Регистрация: 14.08.2016
Сообщений: 2,908
Завершенные тесты: 1
28.07.2017, 23:07 #11
думаю лучше .PadLeft(8,'0'), иначе взбрыкнет, на hhh
1
Kanat-aga
0 / 0 / 0
Регистрация: 11.06.2016
Сообщений: 28
28.07.2017, 23:17  [ТС] #12
Цитата Сообщение от ViterAlex Посмотреть сообщение
Если только в этом формате ошибка, то нужно его привести к тому, в котором нет ошибки, добавив 0 перед ним:
Спасибо большое!!!
0
28.07.2017, 23:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.07.2017, 23:17
Привет! Вот еще темы с ответами:

Как преобразовать массив байтов в строку - C#
Как преобразовать массив байтов в строку. Допустим есть массив байтов - "c7e0f8f3ecebe5ededeef1f2fc20f1e8". Если перевести в строку должно...

Как преобразовать некорректную строку в int? - C#
У меня есть некорректная строка, как её преобразовать в int?

Как преобразовать строку в список List<int> - C#
в строке хранятся значения 123,124,135,98. Как их преобразовать и поместить в List&lt;int&gt;?

Как записать или преобразовать строку в массив строк в C#? - C#
Как записать или преобразовать строку в массив строк в C#?


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.