Привет всем, у меня есть небольшая проблема программирования, которая, вероятно, намного проще, чем я думаю. Поэтому мне нужно установить время для установки Timesbob ниже, чтобы быть 24 + оставшееся время до следующих 16 часов. Ниже приведен псевдокод C#, он был написан в блокноте, потому что на работе у меня нет IDE, у меня также нет большого опыта программирования с использованием дат. Я думаю, что мой алгоритм будет работать, но я думаю, что есть много способов облегчить это. Посмотрите:Как рассчитать количество часов между двумя точками в C#/Code review
//I need to make a timespan object which has 24 hours from current time + time left to the next 4pm
//The context is time to install, which user should see
Timespan TimeToInstall = new Timespan(23,59,59)
//Now I am taking the current time
Current = DateTime.Now
//Now I add the 24 hours to the current in order to create the next day date
Current.Add(TimeToInstall)
//Now creating the 4 PM on the next day
DateTime pm4 = new DateTime(Current.year,Current.month,Current.Day,16,0,0)
//Now checking if current is above or below 4 pm
if(Current.TimeOfDay < pm4){
TimeToInstall = TimeToInstall + (pm4 - Current)
}else if(Current.TimeOfDay > pm4){
pm4.AddDays(1)
TimeToInstall = TimeToInstall + (pm4 - Current)
}else {
//24 hours has passed and it is 4 pm so nothing to do here
}
Советы: Вы можете использовать [C# Pad] (HTTP: // csharppad .com /) в браузере, чтобы писать фрагменты с intellisense – Martheen
@Martheen Спасибо, не знал, что –
Привет, Роберт ... одно замечание, которое я заметил в вашем коде. Как показывает хорошая идея Мартэйн, объекты DateTime и TimeSpan неизменяемы. На линии, где вы добавляете 24 часа: Current.Add (TimeToInstall) на самом деле не меняет Current. Он возвращает новый объект DateTime с добавленной суммой. Он должен быть Current = Current.Add (TimeToInstall). – JohnG