Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2010, 23:32   #1
Casper-SC
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 549
По умолчанию Знаки зодиака. Работа с интервалами дат или любой рабочий вариант.

Пишу класс, в котором есть методы, которые должны возвращать название знака зодиака на основе даты полученной в параметре. Но вот, что-то не ясно как это вообще сделать? Может кто подскажет? Я пробовал проверять по начальной дате какого-то знака и конечной, но что-то у меня вообще ничего не получилось:

Код:
    class SignOfTheZodiac
    {
String[] Zodiac = new String[12] { "Козерог", "Водолей", "Рыбы", "Овен", "Телец", "Близнецы", "Рак",
            "Лев", "Дева", "Весы", "Скорпион", "Стрелец" };

        DateTime signCapricorn_begin;
        DateTime signCapricorn_end;

        DateTime signAquarius_begin;
        DateTime signAquarius_end;

        DateTime signPisces_begin;
        DateTime signPisces_end;

        DateTime signAries_begin;
        DateTime signAries_end;

        
        DateTime signTaurus_begin;
        DateTime signTaurus_end;

        DateTime signTwins_begin;
        DateTime signTwins_end;

        DateTime signCancer_begin;
        DateTime signCancer_end;

        DateTime signLeo_begin;
        DateTime signLeo_end;

        DateTime signVirgo_begin;
        DateTime signVirgo_end;

        DateTime signLibra_begin;
        DateTime signLibra_end;

        DateTime signScorpio_begin;
        DateTime signScorpio_end;

        DateTime signSagittarius_begin;
        DateTime signSagittarius_end;

        /// <summary>
        /// Конструктор по умолчанию
        /// </summary>
        public SignOfTheZodiac()
        {
//  Козерог  22 декабря - 20 января 
signCapricorn_begin = new DateTime(DateTime.Now.Year, 12, 22);
signCapricorn_end   = new DateTime(DateTime.Now.Year, 1, 20);

//  Водолей  21 января - 20 февраля
signAquarius_begin = new DateTime(DateTime.Now.Year, 1, 21);
signAquarius_end   = new DateTime(DateTime.Now.Year, 2, 20);

//  Рыбы     21 февраля - 20 марта
signPisces_begin = new DateTime(DateTime.Now.Year, 2, 21);
signPisces_end = new DateTime(DateTime.Now.Year, 3, 20);

//  Овен     21 марта - 20 апреля 
signAries_begin = new DateTime(DateTime.Now.Year, 3, 21);
signAries_end = new DateTime(DateTime.Now.Year, 4, 20);

//  Телец    21 апреля - 20 мая 
signTaurus_begin = new DateTime(DateTime.Now.Year, 4, 21);
signTaurus_end = new DateTime(DateTime.Now.Year, 5, 20);

//  Близнецы 21 мая - 21 июня 
signTwins_begin = new DateTime(DateTime.Now.Year, 5, 21);
signTwins_end = new DateTime(DateTime.Now.Year, 6, 21);

//  Рак      22 июня - 22 июля
signCancer_begin = new DateTime(DateTime.Now.Year, 6, 22);
signCancer_end = new DateTime(DateTime.Now.Year, 7, 22);

//  Лев      23 июля - 23 августа
signLeo_begin = new DateTime(DateTime.Now.Year, 7, 23);
signLeo_end = new DateTime(DateTime.Now.Year, 8, 23);

//  Дева     24 августа - 23 сентября 
signVirgo_begin = new DateTime(DateTime.Now.Year, 8, 24);
signVirgo_end = new DateTime(DateTime.Now.Year, 9, 23);

//  Весы     24 сентября - 23 октября
signLibra_begin = new DateTime(DateTime.Now.Year, 9, 24);
signLibra_end = new DateTime(DateTime.Now.Year, 10, 23);

//  Скорпион 24 октября - 22 ноября 
signScorpio_begin = new DateTime(DateTime.Now.Year, 10, 24);
signScorpio_end = new DateTime(DateTime.Now.Year, 11, 22);

//  Стрелец  23 ноября - 21 декабря 
signSagittarius_begin = new DateTime(DateTime.Now.Year, 11, 23);
signSagittarius_end = new DateTime(DateTime.Now.Year, 12, 21);
        }

         public String SignZodiac
        {
            get
            {
                return Zodiac[GetSignOfTheZodiac(DateTime.Now.Month, DateTime.Now.Day)];
            }
        }

        /// <summary>
        /// Знак зодиака
        /// </summary>
        /// <param name="date"></param>
        /// <returns></returns>
        private int GetSignOfTheZodiac(int MonthDate, int DayDate) 
        {
            DateTime date = new DateTime(DateTime.Now.Year, MonthDate, DayDate);
            if (date >= signCapricorn_begin && date <= signCapricorn_end)
            {
                return 0;
            }
            return 11;
        }

        public String GetSignTheZodiac(int MonthDate, int DayDate)
        {
            DateTime date = new DateTime(DateTime.Now.Year, MonthDate, DayDate);
            if (date >= signCapricorn_begin && date <= signCapricorn_end)
            {
                return Zodiac[0];
            }
            return Zodiac[11];
        }
    }

    //  Козерог  22 декабря - 20 января 
    //  Водолей  21 января - 20 февраля 
    //  Рыбы     21 февраля - 20 марта
    //  Овен     21 марта - 20 апреля 
    //  Телец    21 апреля - 20 мая 
    //  Близнецы 21 мая - 21 июня 
    //  Рак      22 июня - 22 июля 
    //  Лев      23 июля - 23 августа 
    //  Дева     24 августа - 23 сентября 
    //  Весы     24 сентября - 23 октября 
    //  Скорпион 24 октября - 22 ноября 
    //  Стрелец  23 ноября - 21 декабря 
}

Последний раз редактировалось Casper-SC; 24.04.2010 в 23:52.
Casper-SC вне форума Ответить с цитированием
Старый 25.04.2010, 02:11   #2
Casper-SC
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 549
По умолчанию

А всё, разобрался:

Код:
private int ReturnNumberArrayZodiac(int MonthDate, int DayDate)
        {
            DateTime date = new DateTime(constYear, MonthDate, DayDate);

            if (date >= signCapricorn_begin || date <= signCapricorn_end) //козерог
            {
                return 0;
            }

Последний раз редактировалось Casper-SC; 25.04.2010 в 02:38.
Casper-SC вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
время между двумя интервалами tbeca@mail.ru Общие вопросы Delphi 2 29.01.2010 23:11
Пустой рабочий лист или нет? Simbad Microsoft Office Excel 2 21.01.2010 06:23
Защищена ли рабочий лист или нет? Simbad Microsoft Office Excel 1 19.01.2010 06:47
Нужна помощь составить формулу или ВБА для дат KOSTIK1 Microsoft Office Excel 7 05.01.2010 11:19
Задачка на ассемблере или любой распостраненный язык программирования с ассемблерной вставкой. Gremlin Помощь студентам 1 21.01.2009 21:22