Как я могу получить текущий сезон с помощью.NET? (Лето, Зима, и т.д. …)

Я бы сказал, что это зависит от того, что вы делаете. Однако, по моему опыту, возможности для улучшения с помощью пакетов служб SSIS огромны. Мы увидели 10-кратное улучшение в нашей среде хранилища данных, когда взяли некоторые из самых сложных хранимых процедур и поместили их в пакеты служб SSIS. Использование памяти SSIS (в любом случае, в этой ситуации) имело все значение.

Я хочу повторить, что важно знать, что вы делаете. Например, оператор SQL обычно превосходит поток данных SSIS, когда преобразование данных является таблицей на одном и том же сервере.

Лучше всего выбрать SP или два, создать их в SSIS и протестировать их обоих.

Похоже, что ответ на все вопросы SQL начинается с, Это зависит ...

5
задан John Saunders 23 March 2010 в 17:54
поделиться

6 ответов

Я не думаю, что это стандартизовано. Это также не часть хорошо известных наборов данных о глобализации.

2
ответ дан 18 December 2019 в 07:10
поделиться

Ответ зависит от того, как именно вы хотите определить каждый сезон. Эта диаграмма в Википедии показывает, что точный день и время немного меняются от года к году.

Простое решение, которое может быть «достаточно хорошим», - использовать четыре фиксированные даты, например: 20 марта , 21 июня, 22 сентября и 21 декабря.

4
ответ дан 18 December 2019 в 07:10
поделиться

Лично я бы описал различные разделы по кварталам, а не по климату / периоду года, если этого не требовалось напрямую.

0
ответ дан 18 December 2019 в 07:10
поделиться

Кто-то другой может быстро придумать код для вас, но из той самой статьи на Wikipedia.org , на которую вы ссылались, мы получаем следующее:

Районы с умеренным климатом

Мы могу четко различить шесть времена года. Указанные здесь даты относятся к Северное полушарие: [необходима ссылка]

 * Prevernal (1 марта – 1 мая)
* Весенний (1 мая – 15 июня)
* Estival (15 июня – 15 августа)
* Серотинал (15 августа - 15 сентября)
* Осенний (15 сентября - 1 ноября)
* Hibernal (1 ноября - 1 марта)

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

2
ответ дан 18 December 2019 в 07:10
поделиться

северный / южный:

21/03 - начало весны / осени

21/06 - начало лета / зимы

23/09 - начало осени / весны

22/12 - начало зимы / лета

иногда ТОЛЬКО на один-два дня, но для этого вам нужно будет проверить на таких сайтах, как: timeanddate.com

0
ответ дан 18 December 2019 в 07:10
поделиться
public class Season
{
    private const string WINTER = "Winter";
    private const string SPRING = "Spring";
    private const string SUMMER = "Summer";
    private const string AUTUMN = "Autumn";

    public string Name { get; set; }
    public string Value { get; set; }

    public List<Season> LastFiveBillingQuarters
    {
        get
        {
            IList<Season> billingPeriods = new List<Season>();
            StringBuilder sbDisplayText;
            DateTime billingPeriod;

            for (int i = 0; i >= -12; i -= 3)
            {
                billingPeriod = DateTime.Now.AddMonths(i);
                var month = billingPeriod.Month;
                var day = billingPeriod.Day;
                var year = billingPeriod.Year;
                var ticks = billingPeriod.ToString();

                sbDisplayText = new StringBuilder();

                if ((month >= 12 || month < 03) & day >= 22)
                    sbDisplayText.Append(WINTER);
                else if (month >= 09 & day >= 23)
                    sbDisplayText.Append(AUTUMN);
                else if (month >= 06 & day >= 21)
                    sbDisplayText.Append(SUMMER);
                else if (month >= 03 & day >= 21)
                    sbDisplayText.Append(SPRING);

                sbDisplayText.Append(string.Format("{0}{1}", " ", year));

                billingPeriods.Add(new Season() { Name = sbDisplayText.ToString(), Value = ticks });
            }

            return billingPeriods.ToList();
        }
    }
}
2
ответ дан 18 December 2019 в 07:10
поделиться
Другие вопросы по тегам:

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