Я пытаюсь собрать инструмент, который поможет мне составить график работы. Какой самый простой способ решить следующее?
8:00 am + 5 часов = 1:00 вечера
и
5:00 pm - 2 часа = 3:00 вечера
и
5:30 вечера -: 45 = 4:45
и т.д.
Я пытаюсь собрать инструмент, который поможет мне составить график работы. Какой самый простой способ решить следующее?
8:00 am + 5 часов = 1:00 вечера
и
5:00 pm - 2 часа = 3:00 вечера
и
5:30 вечера -: 45 = 4:45
и т.д.
Все это можно сделать с помощью DateTime.Add(TimeSpan)
, так как он поддерживает положительные и отрицательные интервалы времени.
DateTime original = new DateTime(year, month, day, 8, 0, 0);
DateTime updated = original.Add(new TimeSpan(5,0,0));
DateTime original = new DateTime(year, month, day, 17, 0, 0);
DateTime updated = original.Add(new TimeSpan(-2,0,0));
DateTime original = new DateTime(year, month, day, 17, 30, 0);
DateTime updated = original.Add(new TimeSpan(0,45,0));
Или вы также можете использовать метод DateTime.Subtract(TimeSpan)
.
Ознакомьтесь со всеми методами DateTime здесь: http://msdn.microsoft.com/en-us/library/system.datetime.aspx
Add
Возвращает новое значение DateTime, которое добавляет значение указанного TimeSpan к значению этого экземпляра.
AddDays
Возвращает новое значение DateTime, которое добавляет указанное количество дней к значению этого экземпляра.
AddHours
Возвращает новое значение DateTime, которое добавляет указанное количество часов к значению этого экземпляра.
AddMilliseconds
Возвращает новое значение DateTime, которое добавляет указанное количество миллисекунд к значению этого экземпляра.
AddMinutes
Возвращает новое значение DateTime, которое добавляет указанное количество минут к значению этого экземпляра.
AddMonths
Возвращает новое значение DateTime, которое добавляет указанное количество месяцев к значению этого экземпляра.
AddSeconds
Возвращает новое значение DateTime, которое добавляет указанное количество секунд к значению этого экземпляра.
AddTicks
Возвращает новое значение DateTime, которое добавляет указанное количество тиков к значению этого экземпляра.
AddYears
Возвращает новое значение DateTime, которое добавляет указанное количество лет к значению этого экземпляра.
Это тоже работает:
System.DateTime dTime = DateTime.Now();
// tSpan is 0 days, 1 hours, 30 minutes and 0 second.
System.TimeSpan tSpan = new System.TimeSpan(0, 1, 3, 0);
System.DateTime result = dTime + tSpan;
Чтобы вычесть год:
DateTime DateEnd = DateTime.Now;
DateTime DateStart = DateEnd - new TimeSpan(365, 0, 0, 0);
Используйте объект TimeSpan для захвата вашего начального элемента времени и используйте методы, такие как AddHours
или AddMinutes
. Чтобы вычесть 3 часа, вы сделаете AddHours(-3)
. Чтобы вычесть 45 минут, вы сделаете AddMinutes(-45)
попробуйте это
namespace dateandtime
{
class DatesTime
{
public static DateTime Substract(DateTime now, int hours,int minutes,int seconds)
{
TimeSpan T1 = new TimeSpan(hours, minutes, seconds);
return now.Subtract(T1);
}
static void Main(string[] args)
{
Console.WriteLine(Substract(DateTime.Now, 36, 0, 0).ToString());
}
}
}
Привет, если вы собираетесь вычитать только целочисленное значение из DateTime, то вы должны написать такой код
DateTime.Now.AddHours(-2)
Здесь я вычитаю 2 часа из текущей даты и времени