Бывалый

Профиль
Группа: Участник
Сообщений: 203
Регистрация: 27.11.2009
Репутация: нет Всего: 1
|
Пишу класс, в котором есть методы, которые должны возвращать название знака зодиака на основе даты полученной в параметре. Но вот, что-то не ясно как это вообще сделать? Может кто подскажет? Я пробовал проверять по начальной дате какого-то знака и конечной, но что-то у меня вообще ничего не получилось: | Код |
/// <summary> /// Класс "Знак зодиака". /// Содержит методы для работы со знаками зодиака, /// для расчёта знака зодиака по дате рождения /// </summary> class SignOfTheZodiac { String[] Zodiac = new String[12] { "Козерог", "Водолей", "Рыбы", "Овен", "Телец", "Близнецы", "Рак", "Лев", "Дева", "Весы", "Скорпион", "Стрелец" }; #region [ Даты ] /// <summary> /// Козерог. Начальная дата /// </summary> DateTime signCapricorn_begin; /// <summary> /// Козерог. Конечная дата /// </summary> DateTime signCapricorn_end;
/// <summary> /// Водолей. Начальная дата /// </summary> DateTime signAquarius_begin; /// <summary> /// Водолей. Конечная дата /// </summary> DateTime signAquarius_end;
/// <summary> /// Рыбы. Начальная дата /// </summary> DateTime signPisces_begin; /// <summary> /// Рыбы. Конечная дата /// </summary> DateTime signPisces_end;
/// <summary> /// Овен. Начальная дата /// </summary> DateTime signAries_begin; /// <summary> /// Овен. Конечная дата /// </summary> DateTime signAries_end;
/// <summary> /// Телец. Начальная дата /// </summary> DateTime signTaurus_begin; /// <summary> /// Телец. Конечная дата. /// </summary> DateTime signTaurus_end;
/// <summary> /// Близнецы. Начальная дата /// </summary> DateTime signTwins_begin; /// <summary> /// Близнецы. Конечная дата /// </summary> DateTime signTwins_end;
/// <summary> /// Рак. Начальная дата /// </summary> DateTime signCancer_begin; /// <summary> /// Рак. Конечная дата /// </summary> DateTime signCancer_end;
/// <summary> /// Лев. Начальная дата /// </summary> DateTime signLeo_begin; /// <summary> /// Лев. Конечная дата /// </summary> DateTime signLeo_end;
/// <summary> /// Дева. Начальная дата /// </summary> DateTime signVirgo_begin; /// <summary> /// Дева. Конечная дата /// </summary> DateTime signVirgo_end;
/// <summary> /// Весы. Начальная дата /// </summary> DateTime signLibra_begin; /// <summary> /// Весы. Конечная дата /// </summary> DateTime signLibra_end;
/// <summary> /// Скорпион. Начальная дата /// </summary> DateTime signScorpio_begin; /// <summary> /// Скорпион. Конечная дата /// </summary> DateTime signScorpio_end;
/// <summary> /// Стрелец. Начальная дата /// </summary> DateTime signSagittarius_begin; /// <summary> /// Стрелец. Конечная дата /// </summary> DateTime signSagittarius_end;
#endregion
/// <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 декабря
|
Это сообщение отредактировал(а) CasperSC - 24.4.2010, 23:08
|