Что лучший способ состоит в том, чтобы произвести относительный диапазон дат (На этой неделе, В этом году, В прошлом месяце, и т.д.) от DateTime?

предсказывают работы из модели, экспортированной из обучения. Итак, если ваша модель имеет встроенные преобразования (например, для преобразования tf), то да, будут применены те же преобразования.

У вас есть что-то конкретное, что вы хотите знать? Я предлагаю эту документацию: https://cloud.google.com/ml-engine/docs/tensorflow/prediction-overview

8
задан Dan Lew 2 April 2009 в 18:58
поделиться

4 ответа

Все они были протестированы с помощью DateTime. Сегодня, и работа точно так же, как Вы попросили:

public struct DateRange
{
    public DateTime Start { get; set; }
    public DateTime End { get; set; }
}

public static DateRange ThisYear(DateTime date)
{
    DateRange range = new DateRange();

    range.Start = new DateTime(date.Year, 1, 1);
    range.End = range.Start.AddYears(1).AddSeconds(-1);

    return range;
}

public static DateRange LastYear(DateTime date)
{
    DateRange range = new DateRange();

    range.Start = new DateTime(date.Year - 1, 1, 1);
    range.End = range.Start.AddYears(1).AddSeconds(-1);

    return range;
}

public static DateRange ThisMonth(DateTime date)
{
    DateRange range = new DateRange();

    range.Start = new DateTime(date.Year, date.Month, 1);
    range.End = range.Start.AddMonths(1).AddSeconds(-1);

    return range;
}

public static DateRange LastMonth(DateTime date)
{
    DateRange range = new DateRange();

    range.Start = (new DateTime(date.Year, date.Month, 1)).AddMonths(-1);
    range.End = range.Start.AddMonths(1).AddSeconds(-1);

    return range;
}

public static DateRange ThisWeek(DateTime date)
{
    DateRange range = new DateRange();

    range.Start = date.Date.AddDays(-(int)date.DayOfWeek);
    range.End = range.Start.AddDays(7).AddSeconds(-1);

    return range;
}

public static DateRange LastWeek(DateTime date)
{
    DateRange range = ThisWeek(date);

    range.Start = range.Start.AddDays(-7);
    range.End = range.End.AddDays(-7);

    return range;
}
24
ответ дан 5 December 2019 в 05:08
поделиться

В этом году:

DateTime Today = DateTime.Today;
DateTime StartDate = new DateTime(Today.Year,1,1);
DateTime EndDate = StartDate.AddYears(1).AddSeconds(-1);

В этом месяце:

DateTime Today = DateTime.Today;
DateTime StartDate = new DateTime(Today.Year,Today.Month,1);
DateTime EndDate = StartDate.AddMonths(1).AddSeconds(-1);

На этой неделе:

DateTime Today = DateTime.Today;
DateTime StartDate = Today.AddDays(-((int) Today.DayOfWeek));
DateTime EndDate = StartDate.AddDays(7).AddSeconds(-1);

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

9
ответ дан 5 December 2019 в 05:08
поделиться

Я использовал бы DateTime встроенные методы для Добавления и возврата определенных частей даты для записи функции, которая возвратит интервал.

0
ответ дан 5 December 2019 в 05:08
поделиться

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

Конечно, который реализация, которую Вы возвращаете из метода фабрики, была бы определена значением перечисления, которое Вы передаете ему, который соответствует "этому году", "в прошлом году", и т.д., и т.д.

1
ответ дан 5 December 2019 в 05:08
поделиться
Другие вопросы по тегам:

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