Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ День недели по числу и месяцу

Автор: *alt 1.05.2007 14:03

Считая, что год високосный и 1 января приходится на день недели wd1, определить wd - день недели, на который приходится день с датой d,m.
Данные:

Код

type Tmon = (jnr, fbr, mar, apr, may, jun, jly, aug, sep, oct, nov, dec);
       Tday = (mon, twu, wen, thr, fry, sat, sun);
var d:1..31;
      m:Tmon;
      wd1,wd:Tday;


Есть предложения, но как их оформить подобающе (только начинаю изучать язык):
Посчитать количество дней с начала года до заданного дня (просуммировать в цикле количество дней во всех месяцах от января до m-1, прибавить d). Полученный результат разделить на 7 и найти остаток от деления (остаток:=дней_с_начала_года mod 7). Если первый день года - понедельник, номер дня недели будет равен остатку (считая, что понедельник имеет номер 1). Если первый день - не понедельник, то считайте остаток как (дней_с_начала_года+смещение) mod 7. (например, если первый день - вторник, то смещение=1). Если остаток от деления равен 0, то это воскресенье.

Вот так, как?

__________
Мозгов у нас предостаточно, но они в основном набекрень

Автор: volvo 1.05.2007 14:12

Цитата
Посчитать количество дней с начала года до заданного дня

http://forum.pascal.net.ru/index.php?s=&showtopic=6681&view=findpost&p=49065
Посмотри в варианте Amro, как это сделано... Ну, и в моем варианте это присутствует...

Автор: *alt 1.05.2007 14:35

Задачи связанные с календарем
В вашем варианте непонятно
что это getdate(data.year,data.months,data.day,week);
если процедура, то почему не описана, стандартной такой по-моему нету
и ещё, что такое inc

________
Не знать не стыдно, стыдно не хотеть знать)

Автор: volvo 1.05.2007 14:39

Во-первых, это не в моем варианте... Мой - первый, второй - Amro smile.gif

А во-вторых, в модуле DOS есть процедура GetDate, возвращающая текущие год, месяц, день, и день недели заодно ... См. в хелпе...

Автор: *alt 1.05.2007 14:49

Цитата(volvo @ 1.05.2007 10:39) *

в модуле DOS есть процедура GetDate, возвращающая текущие год, месяц, день, и день недели заодно ... См. в хелпе...

Не нашёл. Как это будет в Delphi?

Автор: volvo 1.05.2007 15:00

Для Дельфи вообще-то есть свой раздел... Здесь - Паскаль...

В дельфи есть модуль DateUtils для работы с датами...

Автор: *alt 1.05.2007 15:33

Я имел ввиду Pascal в Delphi 7.0 : uses SysUtils, windows;
Как переделать ваш исходник под мои требования?