Узнать соклько осталось до окончания текущих суток.

  • Автор темы Автор темы one
  • Дата начала Дата начала

one

Client
Регистрация
22.09.2015
Сообщения
7 019
Реакции
1 314
Баллы
113
Подскажите решения, как, имея дату и время текущего дня получить сколько осталось времени до окончания дня.
 
Перевести время в секунды (только вермя, дату не трогаем). Потом 86400 (кол-во секунд в сутках) минус полученное на предыдущем шаге кол-во секунд. Узнаем сколько секунд осталось до конца дня. При необходимости можно будет конвертировать в часы и минуты.
 
  • Оценить
Реакции: one
Можно пример кода?
C#:
Развернуть Свернуть Копировать
string input_date = "14:11:58, понедельник 28, май 2018";

// Оставляем только время, отсекая дату и день недели.
string time_str = input_date.Split(',')[0].Trim();

// Переводим время в секунды.
int seconds = (int)TimeSpan.Parse(time_str).TotalSeconds;

// Сколько секунд осталось до конца дня.
int diff = 86400 - seconds;

// Возвращем кол-во оставшихся до конца дня секунд.
return diff;

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

В итоге тут возвращается количество секунд оставшихся до конца текущих суток.
 
  • Оценить
Реакции: inilim и one
Вот, поправил код:
C#:
Развернуть Свернуть Копировать
string input_date = "28.05.2018 14:11:58";

// Оставляем только время, отсекая дату и день недели.
string time_str = input_date.Trim().Split(' ')[1].Trim();

// Переводим время в секунды.
int seconds = (int)TimeSpan.Parse(time_str).TotalSeconds;

// Сколько секунд осталось до конца дня.
int diff = 86400 - seconds;

// Возвращем кол-во оставшихся до конца дня секунд.
return diff;
 
Вот, поправил код:
C#:
Развернуть Свернуть Копировать
string input_date = "28.05.2018 14:11:58";

// Оставляем только время, отсекая дату и день недели.
string time_str = input_date.Trim().Split(' ')[1].Trim();

// Переводим время в минуты.
int seconds = (int)TimeSpan.Parse(time_str).TotalSeconds;

// Сколько секунд осталось до конца дня.
int diff = 86400 - seconds;

// Возвращаем кол-во оставшихся до конца дня минут
return diff;
Благодарю за код. Подправил под себя. Считает минуты и дату берет не с переменной, а по факту.

C#:
Развернуть Свернуть Копировать
string dt = DateTime.Now.ToString();
// Оставляем только время, отсекая дату и день недели.
string time_str = dt.Trim().Split(' ')[1].Trim();

// Переводим время в секунды.
int Minutes = (int)TimeSpan.Parse(time_str).TotalMinutes;

// Сколько секунд осталось до конца дня.
int diff = 1440 - Minutes;

return diff;
 
Благодарю за код. Подправил под себя. Считает минуты и дату берет не с переменной, а по факту.

C#:
Развернуть Свернуть Копировать
string dt = DateTime.Now.ToString();
// Оставляем только время, отсекая дату и день недели.
string time_str = dt.Trim().Split(' ')[1].Trim();

// Переводим время в секунды.
int Minutes = (int)TimeSpan.Parse(time_str).TotalMinutes;

// Сколько секунд осталось до конца дня.
int diff = 1440 - Minutes;

return diff;
C#:
Развернуть Свернуть Копировать
return (int)(DateTime.Today.AddDays(1) - DateTime.Now).TotalMinutes;
 
  • Оценить
Реакции: one, Sho и Mikhail B.

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)