Замените раздел даты или времени в объекте DateTime в C #

Недавно я нашел очень легкую и интересную функцию для печати легенды за пределами области графика, где вы хотите.

Сделайте внешний край в правой части графика.

par(xpd=T, mar=par()$mar+c(0,0,0,5))

Создать график

plot(1:3, rnorm(3), pch = 1, lty = 1, type = "o", ylim=c(-2,2))
lines(1:3, rnorm(3), pch = 2, lty = 2, type="o")

Добавить легенду и просто использовать функцию локатора (1), как показано ниже. Затем вам нужно просто щелкнуть по желанию после загрузки после сценария.

legend(locator(1),c("group A", "group B"), pch = c(1,2), lty = c(1,2))

Попробуйте

10
задан Ryall 11 September 2009 в 14:41
поделиться

4 ответа

Я бы написал два или три метода расширения:

public static DateTime WithTime(this DateTime date, TimeSpan time)
{
    return date.Date + time;
}

public static DateTime WithDate(this DateTime original, DateTime newDate)
{
    return newDate.WithTime(original);
}

public static DateTime WithTime(this DateTime original, DateTime newTime)
{
    return original.Date + newTime.TimeOfDay;
}

(Вам действительно не нужны оба вторых метода, но иногда это может быть проще, если вы объединяете много вызовов.)

Обратите внимание, что вы не создаете никаких объектов в терминах элементов в куче, поскольку DateTime является структурой.

12
ответ дан 3 December 2019 в 16:29
поделиться

DateTime is неизменяемая структура.

Единственный вариант - создать новую структуру DateTime на основе ваших двух существующих значений. Это лучший подход. К счастью, это один лайнер:

DateTime CreateNewDateTime(DateTime date, DateTime time)
{
     return new DateTime(date.Year, date.Month, date.Day, time.Hour, time.Minute, time.Second);
}
12
ответ дан 3 December 2019 в 16:29
поделиться

Удалите время из существующего datetime, написав .Date

DateTime new = oldDate.Date;

Добавьте TIme, добавив часы, минуты и секунды по отдельности

DateTime new = oldDate.Date.AddHours(14).AddMinutes(12).AddSeconds(33);

или все сразу

DateTime new = oldDate.Date.AddSeconds(51153);

, либо добавив a TimeSpan ()

DateTime new = oldDate.Date.Add(new TimeSpan(14,12,33));
1
ответ дан 3 December 2019 в 16:29
поделиться

Возможно, это не в точности то, что вы ищете, но класс DateTime имеет ряд методов Add (AddMinutes (), AddDays () и т. Д.) . Я говорю, что это может быть не то, что вы ищете, потому что они возвращают DateTime, поэтому вам нужно будет сделать что-то вроде

myDate = myDate.AddMinutes(60);
0
ответ дан 3 December 2019 в 16:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: