Форумчанин
Регистрация: 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.
|