2015-11-18 5 views
2

Как рассчитать время до дня следующего буднего дня?
В частности, я хочу рассчитать минуты, часы и дни до следующей среды в 14:00.Расчет времени до буднего дня

Как я мог это сделать?

+0

Возможный дубликат [Дни, часы, минуты, секунды между двумя датами] (http: // stackoverflow.com/questions/10538507/days-hours-minutes-seconds-between-two-dates) – HimBromBeere

+1

Что вы пробовали? Вы знаете, как получить текущий день и время? Вычесть другие значения? Вы знаете, как получить следующую среду? – nvoigt

+0

Просто вычитайте следующий рабочий день с текущего времени. –

ответ

2

Почувствуйте себя на риск, чтобы ответить на этот вопрос, но ..

Как мог рассчитать время, пока дневное время следующего дня недели?

Если вы имеете в виду среду с этим предложением, вы можете повторить текущую дату в следующую среду с DayOfWeek enumeration like;

DateTime today = DateTime.Today; 
while (today.DayOfWeek != DayOfWeek.Wednesday) 
{ 
    today = today.AddDays(1); 
} 

Поскольку я сейчас в Стамбуле - сегодня среда, и этот код возвращается сегодня, а не через 7 дней.

Подробнее Я хочу рассчитать минуты, часы и дни до следующей среды в 14:00.

Затем вы можете добавить 14 час до наших дней и получить разницу между текущим по местному времени (DateTime.Now) с ним.

today = today.AddHours(14); 
TimeSpan difference = DateTime.Now - today; 
Console.WriteLine(difference.ToString("d\\.hh\\:mm")); 

Кстати, этот TimeSpan.ToString(string) overload добавил с .NET Framework версии 4.0. Если вы используете .NET 3.5 или ниже, вы можете использовать Days, Hours или Minutes свойства (или, может быть, TotalXXX объектов) вашего difference.

1

Что вам нужно, это TimeSpan объект:

TimeSpan duration = nextWednesday - currentDate; 

где nextDay и nextWednesday два DateTime объекты, представляющие даты вы заинтересованы в

Например, currentDate может быть это DateTime.Now.. Для nextWednesday вам нужно что-то еще:

var today = DateTime.Today; 
var daysUntilWednesday = ((int) DayOfWeek.Wednesday - (int) today.DayOfWeek + 7) % 7; 
var nextWednesday = today.AddDays(daysUntilWednesday); 
var ts = new TimeSpan(14,0,0); 
nextWednesday = nextWednesday.Date + ts; 

Сделав это, вы можете использовать свойство TimeSpan объекта, чтобы получить, что вы хотите.

1

Вы можете попробовать использовать TimeSpan

DateTime t1 = ......; 
DateTime t2 = ......; 
TimeSpan ts = t1.Subtract(t2); 

объект А TimeSpan представляет собой интервал времени (длительность времени или затраченного времени), которая измеряется в качестве положительного или отрицательного числа дней, часов, минут , секунды и доли секунды. Структура TimeSpan также может использоваться для представления времени суток, но только если время не связано с конкретной датой.

Смежные вопросы