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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.01.2011, 13:21   #11
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Код:
CountYear := 0
Цитата:
Сообщение от nnndaniil Посмотреть сообщение
считать годы от 0
... и дальше нечего не понял)
да и тут недопоняли: это счётчик (нужных вам) лет; ему присволи 0

EncodeDate(year,1,1))=7 (?!..)

А вот я не уверен, что так мы найдём воскресенья: а не субботы ли?

Извините, зря влез!

Последний раз редактировалось Sasha_Smirnov; 19.01.2011 в 22:44. Причина: извинение.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 19.01.2011, 21:37   #12
nnndaniil
 
Регистрация: 18.01.2011
Сообщений: 9
По умолчанию

а можно подробнее?))
так что, код этот считает кол-во лет, начавшихся и закончившихся в субботу?
nnndaniil вне форума Ответить с цитированием
Старый 19.01.2011, 21:47   #13
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

У меня нет среды Delphi, но вообще, в заокеанских средах программирования (в том же мобильнике, если он, так сказать, нерусский) 1-й день недели — воскресенье; суббота же соответственно 7-й.

Вот ниже и ответ. Всё okay!

Последний раз редактировалось Sasha_Smirnov; 19.01.2011 в 22:46.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 19.01.2011, 22:23   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
так что, код этот считает кол-во лет, начавшихся и закончившихся в субботу?
Нет.
Этот код считает количество лет, которые начались и закончились ВОСКРЕСЕНИЕМ!

если под рукой нет Delphi, что написать любую дату и проверить, какой номер возвращается,
очень легко посмотреть в интернете!
Навскидку:
DayOfWeek - Функция_ Справочник - Основы Delphi
Delphi DayOfWeek - Функция возвращает индекс дня недели (справочник функций и процедур - Delphi Sources)

Цитата:
Функция DayOfTheWeek возвращает индекс дня недели:

1 = Понедельник
2 = Вторник
3 = Среда
4 = Четверг
5 = Пятница
6 = Суббота
7 = Воскресенье

Последний раз редактировалось Serge_Bliznykov; 19.01.2011 в 22:40.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.01.2011, 22:50   #15
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

http://lingvo.yandex.ru/индекс/по-английски/

Вот чудеса перевода!
Sasha_Smirnov вне форума Ответить с цитированием
Старый 19.01.2011, 23:07   #16
nnndaniil
 
Регистрация: 18.01.2011
Сообщений: 9
По умолчанию

ух ты, большое спасибо. буду разбираться.

а можно как-то сделать, что бы показывались, какие это года были?

Последний раз редактировалось Stilet; 20.01.2011 в 07:39.
nnndaniil вне форума Ответить с цитированием
Старый 20.01.2011, 07:08   #17
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
а можно как-то сделать, что бы показывались, какие это года были?
можно.
в цикле выводите их туда, где Вы их хотите показать.

Например, если отображать их в Memo.
Киньте на форму Memo (пусть это будет Memo1, для простоты)
тогда достаточно:
Код:
var CountYear, year :Integer;
begin
 CountYear := 0;
 Memo1.Lines.Clear; {очистим мемо}
 Memo1.Lines.Append('Года, которые начинались и заканчивались на воскресение:');

 for year:=1900 to 2000 do begin
   if  (DayOfTheWeek(EncodeDate(year,1,1))=7) and
        (DayOfTheWeek(EncodeDate(year,12,31))=7) then begin
          Inc(CountYear);
          Memo1.Lines.Append(IntToStr(year));
   end; 
 end; 

 ShowMessage('Таких годов было : '+IntToStr(CountYear));
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.01.2011, 11:51   #18
nnndaniil
 
Регистрация: 18.01.2011
Сообщений: 9
По умолчанию

спасибо, правда мне в поле memo вывелся просто перечень лет, начиная с 1900 по 2000 год
nnndaniil вне форума Ответить с цитированием
Старый 20.01.2011, 17:56   #19
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию 20 век. Россия. Года с воскресенья

Код:
05(06) 11(12) 22 33 39 50 61 78 89 95
В скобочках — по юлианскому календарю; но «по-дельфийски» их у нас получается 10.

Юлианский 1912-й — високосный (по любому календарю из двух), так что 31 декабря в нём выпадает не на тот же день (что 1 января), а на следующий: понедельник — по-старому и вторник — по-новому (см. рисунок).

Перед 1906 (1905 по Григорию) «воскресным» в России был 1895-й (в Зап. Европе — 1899-й).

Примечание. В 21-м веке ВОСКРЕСЕНЬЕ — начало и конец 2006-го, затем (если будут!) 2017-го и 2023-го.
Изображения
Тип файла: jpg 1912-Gregorian-vs-Julian.jpg (50.8 Кб, 82 просмотров)

Последний раз редактировалось Sasha_Smirnov; 20.01.2011 в 21:33.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 22.01.2011, 15:34   #20
nnndaniil
 
Регистрация: 18.01.2011
Сообщений: 9
По умолчанию

а чего тогда программа считает, что таких лет было 11, если на самом деле их 10 или она посчитала и 2005 год?
nnndaniil вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Календарь seriousMalish JavaScript, Ajax 2 12.05.2010 05:01
помогите календарь delphi npizpak Помощь студентам 3 27.11.2009 10:52
Програмка "Календарь" на Delphi R_A_M_I_L7777777 Помощь студентам 12 23.01.2009 16:57
Календарь в Delphi Vladya Помощь студентам 4 09.11.2008 12:44