Неверов Евгений Викторович
QR-код
Меню сайта
Категории раздела
Программирование на языке Паскаль [26]
В данной категории представлены новые функции, созданные на языке Паскаль, которые могут пригодиться при написании своих программ
Программирование на Delphi [19]
В данной категории представлены полезные подпрограммы, которые могут пригодиться при написании своих программ, а также рассматриваются примеры готовых проектов, создаваемых в среде программирования Delphi
Программирование на HTML [1]
В данной категории рассматриваются примеры готовых проектов, создаваемых на языке HTML
Мои программы [1]
Описание разработанных автором программ.
Online-программы [2]
Прочее [42]
Свободная тематика
Мини-чат
200
Наш опрос
Чем Вы занимаетесь?
Всего ответов: 57
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Функции даты и времени

Модуль SysUtils

Рассмотрим некоторые процедуры и функции по работе с датой и временем из модуля SysUtils.

1. Форматирование даты и времени путем преобразования в строку

Для преобразования даты/времени в текст с расширенными возможностями форматирования используется функция FormatDateTime.

function FormatDateTime(const Format: string; DateTime: TDateTime): string;

где:

  • Format – формат строки;
  • DateTime – дата и время (количество дней, прошедших с 30 декабря 1899 года).

Поддерживаются следующие описатели формата строки Format:

  • c – дата и время в формате число.месяц.год час:минута:секунда (например, '1.01.2127 1:08:04');
  • d – число месяца без нуля в первом разряде (1 … 31);
  • dd – число месяца с нулем в первом разряде (01 … 31);
  • ddd – сокращенное название дня недели (Пн … Вс);
  • dddd – полное название дня недели (понедельник … воскресенье);
  • ddddd – дата в сокращенном формате число.месяц.год (например, '04.05.2096');
  • dddddd – дата в полном формате число месяц год (например, '4 Май 2096 год');
  • g – отображает период/эру в виде аббревиатуры с 1.01.1601 г. (только для японской и тайваньской локалей);
  • gg – отображает период/эру как полное название с 1.01.1601 г. (только для японской и тайваньской локалей);
  • e – отображает год текущего периода/эры в виде числа без начального нуля с 1.01.1601 г. (только для японской, корейской и тайваньской локалей) (0 … 99);
  • ee – отображает год текущего периода/эры в виде числа с начальным нулем с 1.01.1601 г. (только для японской, корейской и тайваньской локалей) (00 … 99);
  • m – месяц в виде числа без нуля в первом разряде (1 … 12);
  • mm – месяц в виде числа с нулем в первом разряде (01 … 12);
  • mmm – сокращенное название месяца (янв … дек);
  • mmmm – полное название месяца (Январь … Декабрь);
  • yy – год из двух цифр (00 … 99);
  • yyyy – год из четырех цифр (0000 … 9999);
  • h – часы без нуля в первом разряде (0 … 23);
  • hh – часы с нулем в первом разряде (00 … 23);
  • n – минуты без нуля в первом разряде (0 … 59);
  • nn – минуты с нулем в первом разряде (00 … 59);
  • s – секунды без нуля в первом разряде (0 … 59);
  • ss – секунды с нулем в первом разряде (00 … 59);
  • z – миллисекунды без нуля в первом разряде (0 … 999);
  • zzz – миллисекунды с нулем в первом разряде (000 … 999);
  • t – сокращенный формат времени час:минута (например, '9:02');
  • tt – полный формат времени час:минута:секунда (например, '4:08:00');
  • am/pm – обозначение времени в 12-часовом формате до и после полудня (до полудня показываются символы 'am', после – 'pm');
  • a/p – обозначение времени в 12-часовом формате до и после полудня (до полудня показывается символ 'a', после – 'p');
  • ampm – обозначение времени в 12-часовом формате до и после полудня (выводит в зависимости от настроек формата операционной системы).

Например,

  • FormatDateTime('dd.mm.yyyy hh:nn:ss am/pm', Now) выведет '01.01.2016 08:00:00 am';
  • FormatDateTime('Сегодня dddd, dddddd. tt', Now) выведет 'Сегодня пятница, 1 Январь 2016 год. 8:00:00'.

2. Проверка правильности введения даты

Перед преобразованием года, месяца и дня в формат TDateTime (переменная Date) функция TryEncodeDate контролирует корректность значений в параметрах Year, Month и Day. Если в параметре ошибка (например, указан 13-й месяц), функция вернет false; а в случае удачи – true, и результат преобразования внесет в параметр Date.

function TryEncodeDate(Year, Month, Day: Word; out Date: TDateTime): Boolean;

где:

  • Year – год;
  • Month – месяц;
  • Day – день;
  • Date – полученная дата.

Например,

  • TryEncodeDate(2015, 2, 29, Date) выведет false (в феврале 2015 года – 28 дней);
  • TryEncodeDate(2016, 5, 1, Date) выведет true, а значение Date станет равным '42491'.

3. Объединение года, месяца и дня в дату

Функция EncodeDate конвертирует год, месяц и день в дату в формате TDateTime.

function EncodeDate(Year, Month, Day: Word): TDateTime;

где:

  • Year – год;
  • Month – месяц;
  • Day – день.

Например,

  • EncodeDate(2012, 9, 30) выведет '41182';
  • EncodeDate(2089, 11, 31) выдаст аварийную ошибку (31 ноября не существует).

4. Разделение даты на год, месяц и день

Процедура DecodeDate конвертирует дату в формате TDateTime в год, месяц и день.

procedure DecodeDate(const DateTime: TDateTime; var Year, Month, Day: Word);

где:

  • DateTime – исходная дата;
  • Year – год;
  • Month – месяц;
  • Day – день.

Например,

  • DecodeDate(48247, Year, Month, Day) извлечет следующие значения:
    • Year2032;
    • Month2;
    • Day3.

5. Проверка правильности введения времени

Перед преобразованием числовых значений часа, минуты, секунды и миллисекунды в формат TDataTime (переменная Time) функция TryEncodeTime проверяет корректность значений в параметрах Hour, Min, Sec и MSec. В случае ошибки (например, указано 60 минут) функция вернет false; а в случае удачи – true, и результат преобразования внесет в параметр Time.

function TryEncodeTime(Hour, Min, Sec, MSec: Word; out Time: TDateTime): Boolean;

где:

  • Hour – часы;
  • Min – минуты;
  • Sec – секунды;
  • MSec – миллисекунды;
  • Time – полученное время.

Например,

  • TryEncodeTime(24, 8, 60, 984, Time) выведет false (24 – неверное количество часов /0 … 23/; 60 – неверное количество секунд /0 … 59/);
  • TryEncodeTime(23, 51, 37, 687, Time) выведет true, а значение Time станет равным '0,994186' (округленно).

6. Объединение часов, минут, секунд и миллисекунд во время

Функция EncodeTime конвертирует часы, минуты, секунды и миллисекунды во время в формате TDateTime.

function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime;

где:

  • Hour – часы;
  • Min – минуты;
  • Sec – секунды;
  • MSec – миллисекунды.

Например,

  • EncodeTime(22, 47, 36, 1) выведет '0,949722' (округленно);
  • EncodeTime(14, 9, 58, 1000) выдаст аварийную ошибку (количество миллисекунд должно быть строго меньше 1000).

7. Разделение времени на часы, минуты, секунды и миллисекунды

Процедура DecodeTime конвертирует время в формате TDateTime в часы, минуты, секунды и миллисекунды.

procedure DecodeTime(const DateTime: TDateTime; var Hour, Min, Sec, MSec: Word);

где:

  • DateTime – исходное время;
  • Hour – часы;
  • Min – минуты;
  • Sec – секунды;
  • MSec – миллисекунды.

Например,

  • DecodeTime(0.28435, Hour, Min, Sec, MSec) извлечет следующие значения:
    • Hour6;
    • Min49;
    • Sec27;
    • MSec840.

8. День недели

Функция DayOfWeek возвращает день недели из значения TDateTime. Возвращаемое функцией значение находится в промежутке между 1 и 7, где первым днем недели является воскресенье, последним (седьмым) – суббота.

function DayOfWeek(const DateTime: TDateTime): Word;

где:

  • DateTime – дата.

Например,

  • DayOfWeek(EncodeDate(2025, 6, 7)) выведет '7' (суббота);
  • DayOfWeek(EncodeDate(2025, 6, 8)) выведет '1' (воскресенье).

Примечание. Если хотите, чтобы первым днем недели считался понедельник, используйте функцию DayOfTheWeek вместо функции DayOfWeek, расположенная в модуле DateUtils.


9. Високосный год

Функция IsLeapYear показывает, является ли указаный год високосным.

function IsLeapYear(Year: Word): Boolean;

где:

  • Year – год.

Например,

  • IsLeapYear(2000) выведет true;
  • IsLeapYear(2100) выведет false.

Модуль DateUtils

Рассмотрим некоторые процедуры и функции по работе с датой и временем из модуля DateUtils.

10. Проверка правильности введения даты и времени

Перед преобразованием года, месяца и дня в формат TDateTime (переменная AValue) функция TryEncodeDateTime контролирует корректность значений в параметрах AYear, AMonth, ADay, AHour, AMinute, ASecond и AMilliSecond. Если в параметре ошибка, функция вернет false; а в случае удачи – true, и результат преобразования внесет в параметр AValue.

function TryEncodeDateTime(const AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word; out AValue: TDateTime): Boolean;

где:

  • AYear – год;
  • AMonth – месяц;
  • ADay – день;
  • AHour – часы;
  • AMinute – минуты;
  • ASecond – секунды;
  • AMilliSecond – миллисекунды;
  • AValue – полученные дата и время.

Например,

  • TryEncodeDateTime(2000, 6, 31, 14, 15, 16, 17, Value) выведет false (в июне – 30 дней);
  • TryEncodeDateTime(2008, 1, 2, 3, 4, 5, 6, Value) выведет true, а значение Value станет равным '39449,1278357' (округленно).

11. Объединение года, месяца, дня, часов, минут, секунд и миллисекунд в дату и время

Функция EncodeDateTime конвертирует год, месяц, день, часы, минуты, секунды и миллисекунды в дату и время в формате TDateTime.

function EncodeDateTime(const AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word): TDateTime;

где:

  • AYear – год;
  • AMonth – месяц;
  • ADay – день;
  • AHour – часы;
  • AMinute – минуты;
  • ASecond – секунды;
  • AMilliSecond – миллисекунды.

Например,

  • EncodeDateTime(2018, 12, 7, 15, 0, 0, 0) выведет '43441,625';
  • EncodeDateTime(2046, 2, 8, 24, 0, 0, 0) выдаст аварийную ошибку (количество часов должно быть строго меньше 24).

12. Разделение даты и времени на год, месяц, день, часы, минуты, секунды и миллисекунды

Процедура DecodeDateTime конвертирует дату и время в формате TDateTime в год, месяц, день, часы, минуты, секунды и миллисекунды.

procedure DecodeDateTime(const AValue: TDateTime; out AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word);

где:

  • AValue – исходные дата и время;
  • AYear – год;
  • AMonth – месяц;
  • ADay – день;
  • AHour – часы;
  • AMinute – минуты;
  • ASecond – секунды;
  • AMilliSecond – миллисекунды.

Например,

  • DecodeDateTime(78343.24935742, Year, Month, Day, Hour, Min, Sec, MSec) извлечет следующие значения:
    • Year2114;
    • Month6;
    • Day29;
    • Hour5;
    • Min59;
    • Sec4;
    • MSec481.

13. Количество дней в году

Функции DaysInYear и DaysInAYear возвращают количество дней в году.

function DaysInYear(const AValue: TDateTime): Word;
function DaysInAYear(const AYear: Word): Word;

где:

  • AValue – дата;
  • AYear – год.

Например,

  • DaysInYear(EncodeDate(2011, 8, 31)) выведет '365';
  • DaysInAYear(2012) выведет '366'.

14. Количество дней в месяце

Функции DaysInMonth и DaysInAMonth возвращают количество дней в месяце.

function DaysInMonth(const AValue: TDateTime): Word;
function DaysInAMonth(const AYear, AMonth: Word): Word;

где:

  • AValue – дата;
  • AYear – год;
  • AMonth – месяц.

Например,

  • DaysInMonth(EncodeDate(2073, 3, 23)) выведет '31';
  • DaysInAMonth(2100, 2) выведет '28'.

15. Количество недель в году

Функции WeeksInYear и WeeksInAYear возвращают количество недель в году.

function WeeksInYear(const AValue: TDateTime): Word;
function WeeksInAYear(const AYear: Word): Word;

где:

  • AValue – дата;
  • AYear – год.

Например,

  • WeeksInYear(EncodeDate(2095, 2, 15)) выведет '52';
  • WeeksInAYear(2048) выведет '53'.

Примечание. Данные функции возвращают значение '53' в том случае, если дата 1 января выпадает на четверг (или в среду, если год високосный). Во всех случаях – '52'.


16. Начало календарного года

Функции StartOfTheYear и StartOfAYear возвращают дату начала года (1 января указанного года), значение времени устанавливается в 00:00:00.000.

function StartOfTheYear(const AValue: TDateTime): TDateTime;
function StartOfAYear(const AYear: Word): TDateTime;

где:

  • AValue – дата;
  • AYear – год.

Например,

  • StartOfTheYear(EncodeDate(2060, 4, 6)) выведет '58441' (1 января 2060 год 00:00:00.000);
  • StartOfAYear(2000) выведет '36526' (1 января 2000 год 00:00:00.000).

17. Конец календарного года

Функции EndOfTheYear и EndOfAYear возвращают дату окончания года (31 декабря указанного года), значение времени устанавливается в 23:59:59.999.

function EndOfTheYear(const AValue: TDateTime): TDateTime;
function EndOfAYear(const AYear: Word): TDateTime;

где:

  • AValue – дата;
  • AYear – год.

Например,

  • EndOfTheYear(EncodeDate(2060, 4, 6)) выведет '58806,9999999' (31 декабря 2060 год 23:59:59.999);
  • EndOfAYear(2000) выведет '36891,9999999' (31 декабря 2000 год 23:59:59.999).

18. Начало календарного месяца

Функции StartOfTheMonth и StartOfAMonth возвращают дату начала месяца (первый день указанного месяца), значение времени устанавливается в 00:00:00.000.

function StartOfTheMonth(const AValue: TDateTime): TDateTime;
function StartOfAMonth(const AYear, AMonth: Word): TDateTime;

где:

  • AValue – дата;
  • AYear – год;
  • AMonth – месяц.

Например,

  • StartOfTheMonth(EncodeDate(2142, 7, 3)) выведет '88572' (1 июля 2142 год 00:00:00.000);
  • StartOfAMonth(2089, 3) выведет '69093' (1 марта 2089 год 00:00:00.000).

19. Конец календарного месяца

Функции EndOfTheMonth и EndOfAMonth возвращают дату окончания месяца (последний день указанного месяца), значение времени устанавливается в 23:59:59.999.

function EndOfTheMonth(const AValue: TDateTime): TDateTime;
function EndOfAMonth(const AYear, AMonth: Word): TDateTime;

где:

  • AValue – дата;
  • AYear – год;
  • AMonth – месяц.

Например,

  • EndOfTheMonth(EncodeDate(2142, 7, 3)) выведет '88602,9999999' (31 июля 2142 год 23:59:59.999);
  • EndOfAMonth(2089, 3) выведет '69123,9999999' (31 марта 2089 год 23:59:59.999).

20. Начало календарной недели

Функции StartOfTheWeek и StartOfAWeek возвращают дату начала недели (первый день недели), значение времени устанавливается в 00:00:00.000.

function StartOfTheWeek(const AValue: TDateTime): TDateTime;
function StartOfAWeek(const AYear, AWeekOfYear: Word; const ADayOfWeek: Word = 1): TDateTime;

где:

  • AValue – дата;
  • AYear – год;
  • AWeekOfYear – неделя года (в диапазоне 1 … 53).
  • ADayOfWeek – смещение относительно первого дня недели (в диапазоне 1 … 7) (необязательный параметр).

Например,

  • StartOfTheWeek(EncodeDate(2038, 9, 5)) выведет '50647' (понедельник, 30 августа 2038 год 00:00:00.000);
  • StartOfAWeek(1970, 1) выведет '25566' (понедельник, 29 декабря 1969 год 00:00:00.000).
  • StartOfAWeek(1971, 1) выведет '25937' (понедельник, 4 января 1971 год 00:00:00.000).
  • StartOfAWeek(1971, 1, 7) выведет '25943' (воскресенье, 10 января 1971 год 00:00:00.000).

Примечание. Как видно из примеров, дата начала первой недели календарного года (понедельник) зависит от дня недели 1 января.


21. Конец календарной недели

Функции EndOfTheWeek и EndOfAWeek возвращают дату окончания недели (последний день недели), значение времени устанавливается в 23:59:59.999.

function EndOfTheWeek(const AValue: TDateTime): TDateTime;
function EndOfAWeek(const AYear, AWeekOfYear: Word; const ADayOfWeek: Word = 7): TDateTime;

где:

  • AValue – дата;
  • AYear – год;
  • AWeekOfYear – неделя года (в диапазоне 1 … 53).
  • ADayOfWeek – смещение относительно последнего дня недели (в диапазоне 1 … 7) (необязательный параметр).

Например,

  • EndOfTheWeek(EncodeDate(2038, 8, 30)) выведет '50653,9999999' (воскресенье, 5 сентября 2038 год 23:59:59.999);
  • EndOfAWeek(1970, 53) выведет '25936,9999999' (воскресенье, 3 января 1971 год 23:59:59.999).
  • EndOfAWeek(1969, 52) выведет '25565,9999999' (воскресенье, 28 декабря 1969 год 23:59:59.999).
  • EndOfAWeek(1969, 52, 1) выведет '25559,9999999' (понедельник, 22 декабря 1969 год 23:59:59.999).

22. Порядковый номер дня года

Функция DayOfTheYear возвращает порядковый номер дня с начала года (количество дней между значением, указаным в TDateTime и 31 декабря предыдущего года).

function DayOfTheYear(const AValue: TDateTime): Word;

где:

  • AValue – дата.

Например,

  • DayOfTheYear(EncodeDate(2096, 6, 27)) выведет '179' (179-й день 2096-го года). Проверка: 31 + 29 + 31 + 30 + 31 + 27 = 179.

23. Порядковый номер недели года

Функция WeekOfTheYear возвращает порядковый номер недели с начала года.

function WeekOfTheYear(const AValue: TDateTime): Word;
function WeekOfTheYear(const AValue: TDateTime; var AYear: Word): Word;

где:

  • AValue – дата;
  • AYear – год.

Например,

  • WeekOfTheYear(EncodeDate(2019, 4, 21), Year) выведет '16' (16-я неделя 2019-го года), а значение Year станет равным '2019';
  • WeekOfTheYear(EncodeDate(2157, 1, 1), Year) выведет '53' (53-я неделя 2156-го года), а значение Year станет равным '2156' (1 января 2157 года – суббота);
  • WeekOfTheYear(EncodeDate(2075, 12, 31)) выведет '1' (1-я неделя 2076-го года) (31 декабря 2075 года – вторник).

24. Конвертация григорианского и юлианского дней

Функция DateTimeToJulianDate преобразовает значение TDateTime в соответствующую юлианскую дату. Функция JulianDateToDateTime преобразовает юлианскую дату в соответствующее значение TDateTime.

Юлианская дата – это количество дней, включая дробные дни, с 4713 г. до н. э. 1 января, полдень по Гринвичу. Юлианские даты используются астрономами, геофизиками и другими, кому нужна однозначная система датирования, основанная на продолжающемся подсчете дней.

function DateTimeToJulianDate(const AValue: TDateTime): Double;

где:

  • AValue – дата и время;
function JulianDateToDateTime(const AValue: Double): TDateTime;

где:

  • AValue – юлианский день;

Например,

  • DateTimeToJulianDate(EncodeDateTime(1842, 11, 2, 7, 32, 54, 555)) выведет '2394141,8145203' (округленно);
  • JulianDateToDateTime(2518809.2942958) выведет '103790.7942958' (29 февраля 2184 год 19:03:47.157).

Примечание. К сожалению, до 15 октября 1582 года имеются расхождения. Для того, чтобы вычислить истинные значения до указанной даты, необходимо учитывать григорианскую реформу календаря. Такие функции описаны, например, в книге О.Монтенбрука, Т.Пфлегера "Астрономия на персональном компьютере".


25. Конвертация даты Unix

Функция DateTimeToUnix преобразовает значение TDateTime в соответствующую кодировку Unix/Linux той же даты и времени. Функция UnixToDateTime преобразовает кодировку Unix/Linux значения даты и времени в соответствующее значение TDateTime.

Значения даты и времени в Unix/Linux кодируются как количество секунд, прошедших с полуночи 1 января 1970 года.

function DateTimeToUnix(const AValue: TDateTime): Int64;

где:

  • AValue – дата и время;
function UnixToDateTime(const AValue: Int64): TDateTime;

где:

  • AValue – дата Unix;

Например,

  • DateTimeToUnix(EncodeDateTime(2005, 6, 14, 11, 54, 13, 843)) выведет '1118750054';
  • UnixToDateTime(2307360941) выведет '52274.5664468' (округленно) (12 февраля 2043 год 13:35:41.000).

Авторский модуль

В этом разделе предлагаются авторские разработки.

26. Порядковый номер недели года

Наверно заметили, что функция WeekOfTheYear не совсем корректно работает: для 1 января функция может выдать значения '1', либо '52'. То же самое и для 31 декабря. Поэтому предлагаю свой вариант: 1-я неделя начинается с 1 января (день недели не имеет значения), а 52-я (53-я) – только для 31 декабря.

function WeekOfTheYearNew(DateTime: TDateTime): word;
var Year, Month, Day, Week: word;
    Date1: TDateTime;
begin
   DecodeDate(DateTime, Year, Month, Day);
   Date1:=EncodeDate(Year, 1, 1);
   Week:=DayOfTheWeek(Date1);
   Date1:=Date1-Week+1;
   Week:=Trunc(DateTime-Date1);
   Result:=Week div 7+1;
end;

где:

  • DateTime – исходная дата.

Например,

  • WeekOfTheYearNew(EncodeDate(2087, 6, 27)) выведет '26' (26-я неделя 2087-го года).

27. Перевод количества секунд в привычный нам формат

function FormatSecond(Sec: real): string;
var d, ch, min, s, ms: integer;
begin
   ms:=Trunc(Frac(Sec)*1000);
   Sec:=Trunc(Sec);
   s:=Trunc(Sec) mod 60;
   Sec:=Trunc(Sec/60);
   min:=Trunc(Sec) mod 60;
   Sec:=Trunc(Sec/60);
   ch:=Trunc(Sec) mod 24;
   Sec:=Trunc(Sec/24);
   d:=Trunc(Sec);
   Result:='';
   if d>0 then
      Result:=Format('%d дн. ', [d]);
   Result:=Format('%s%d:%.2d:%.2d', [Result, ch, min, s]);
   if ms>0 then
      Result:=Format('%s,%.3d', [Result, ms]);
end;

где:

  • Sec – количество секунд.

Например,

  • FormatSecond(82926) выведет '23:02:06';
  • FormatSecond(658745.008) выведет '7 дн. 14:59:05,008'.

28. Часовой пояс

function TimeZone: real;
var lp: TTimeZoneInformation;
begin
   GetTimeZoneInformation(lp);
   Result:=-lp.Bias/60;
end;

Примечание 1. Выводит часовой пояс в зависимости от настроек компьютера (например, '3').

Примечание 2. Список часовых поясов можно найти в разделе "Чтение системного реестра" во 2 пункте "Список часовых поясов".


29. Вычисление даты Пасхи

function Easter(Year: integer): TDateTime;
var a, b, c: integer;
begin
   a:=Year mod 19;
   b:=Year mod 4;
   c:=Year mod 7;
   a:=(19*a + 15) mod 30;
   b:=(2*b + 4*c + 6*a + 6) mod 7;
   a:=a+b;
   b:=-2 + Year div 100 - Year div 400;
   if TryEncodeDate(Year, 3, 22, Result) then
      Result:=Result+a+b else
      Result:=0;
end;

где:

  • Year – год.

Например,

  • FormatDateTime('c', Easter(2016)) выведет '01.05.2016'.

Ниже статьи имеется небольшая программа, позволяющая вычислить даты Пасхи.

Введите год. Рассчитать на лет.
Категория: Программирование на Delphi | Добавил: newerow1989 |
Просмотров: 4100 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email:
Код *:
Вход на сайт
Поиск
Друзья сайта
Заработок в Интернете
Для начала необходим Электронный PAYEER® кошелек!
Copyright MyCorp © 2025
Версия для мобильных устройств. Яндекс.Метрика Анализ сайта Проверить мой сайт на ScamAdviser.com