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

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

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

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

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

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

Написал небольшой класс, он вычисляет в год кого родился человек. В принципе можно использовать, но вот перерасчёт происходит слишком часто, то есть при каждой смене значения в DateTimePicker. даже этот код, мой не самый последний процессор, не нагружает по-моему даже при зажатии кнопки смены года в DateTimePicker, но всё-же хотелось бы оптимизации. Может есть у кого идея как его оптимизировать? Просто я не гений математик, чтобы самому вывести тут формулу

Код:
    /// <summary>
    /// Класс китайского гороскопа. 
    /// Имеет методы для определения по году, в год кого человек родился. 
    /// (Например: год кролика, год тигра и т.д.)
    /// </summary>
    class ChinaHoroskopYears
    {
        private String[] horoskopYear = new String[12] {"Обезьяны", "Петуха", "Собаки", "Кабана", 
            "Крысы", "Быка", "Тигра", "Кролика", "Дракона", "Змеи", "Лошади", "Овцы" };
        private int Index = 0;

        public String GetNameYear(int yearTarget)
        {
            int yearCounter = 0;
            
            while (yearCounter != yearTarget)
            {
                yearCounter++;
                SetHoroskopIndex();
            }
            return horoskopYear[Index];
        }

        private void SetHoroskopIndex()
        {
            if (Index == 11)
            {
                Index = 0;
            }
            else
            {
                Index++;
            }
        }
    }
Casper-SC вне форума Ответить с цитированием
Старый 25.04.2010, 16:52   #2
R-87A
Пользователь
 
Аватар для R-87A
 
Регистрация: 22.04.2010
Сообщений: 15
По умолчанию

Я - тоже не гений, но всё очень просто:
Код:
 class ChinaHoroskopYears
    {
        private String[] horoskopYear = new String[12] {"Обезьяны", "Петуха", "Собаки", "Кабана", 
            "Крысы", "Быка", "Тигра", "Кролика", "Дракона", "Змеи", "Лошади", "Овцы" };

        public String GetNameYear(int yearTarget)
        {
			return horoskopYear[yearTarget % 12];
        }
    }
Просто, находим остаток от деления года на двеннадцать, и по счастливой случайности - это и будет индекс строки в массиве.
Si vis pacem, para bellum.
R-87A вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Класс MediaPlayer на основе готового. Дописать [C#] Casper-SC Фриланс 1 07.03.2010 11:13
нужна помощь в толковании готового кода(((( даша:( Общие вопросы по Java, Java SE, Kotlin 1 10.01.2010 03:07
Определение реального класса megachuhancer Общие вопросы Delphi 2 24.09.2009 15:35
Создание класса человек, worker, employee kos403 Общие вопросы C/C++ 2 22.02.2009 11:35
У меня родился сын!!!! Umen Свободное общение 11 14.03.2007 19:47