По счёту дня високосного года определяет какой идёт месяц

  • Автор темы Guest
  • Дата начала
G

Guest

Вопрос Таков:
Есть задача, которая по счёту дня високосного года определяет какой идёт месяц, а надо что бы она определяла ещё и день недели, помогите составить такую формулу!


Код:
program m5;
uses crt;
var a:integer;
begin
clrscr;
writeln('vvedite ');
readln(a);
case a of
1..31:writeln('Январь);
31..60:writeln('Февраль');
60..91:writeln('Март');
91..121:writeln('Апрель');
121..152:writeln('Май');
152..182:writeln('Июнь');
182..213:writeln('Июль');
213..243:writeln('Август');
243..274:writeln('Сентябрь');
274..304:writeln('Октябрь');
304..335:writeln('Ноябрь');
335..366:Writeln('Декабрь');
else writeln('error');
end;
readln;
end.
end;
readln;
end.



Заранее благодарю!
 
M

morpheus

Всё тоже саоме тока кейсов будет больше :) ))))
 
G

Guest

Делал я эту задачу со всеми 366 кейсами, а мне на неё ещё блок схему составит надо, так что это не раельно(вообще конечно реально, на несколько листов, но мне так нельзя), мне надо как нибуть в формулу запихнуть это! :)
 
R

root

помогите составить такую формулу
да до нас ее уже составили это так называемая формула Зеллера
формула:
h=(q+[((m+1)*26)/10]+K+[k/4]+[j/4]+2j) mod 7
где:
h= это день недели 0 субота
q= день в месяце
m= месяц
J = век [год/100]
K= год в веке [год mod 100]

Код:
function DayOfWeek(Day, Month, Year: Integer) : Integer;
var
century, yr, dw: Integer;
begin
if Month < 3 then
begin
Inc(Month, 10);
Dec(Year);
end
else
Dec(Month, 2);
century := Year div 100;
yr := year mod 100;
dw := (((26 * month - 2) div 10) + day + yr + (yr div 4) +
(century div 4) - (2 * century)) mod 7;
if dw < 0 then DayOfWeek := dw + 7
else DayOfWeek := dw;
if (dw = 0) or ((dw+7)=0) then DayOfWeek:=7
end;
осталось только год придумать :)
 
G

Guest

Спасибо за формулу, но мне почему то она постоянно выдаёт ошибку:
Error 36: begin expected.
Почему?
 
R

root

Для: ЖэКЫЧ
код приведи
Код Паскаля
Код:
function DayOfWeek(Day, Month, Year: Integer) : Integer;
var
century, yr, dw: Integer;
begin
if Month < 3 then
begin
Month:=Month+10;
Year:=Year-1;
end
else
Month:=Month-2;
century := Year div 100;
yr := year mod 100;
dw := (((26 * month - 2) div 10) + day + yr + (yr div 4) +
(century div 4) - (2 * century)) mod 7;
if dw < 0 then DayOfWeek := dw + 7
else DayOfWeek := dw;
if (dw = 0) or ((dw+7)=0) then DayOfWeek:=7
end;

begin
writeln('DayOf=',DayOfWeek(17,11,2007) );
readln;
end.
 
G

Guest

Код:
Program m93;
uses crt;
function DayOfWeek(Day, Month, Year: Integer) : Integer;
var century, yr, dw: Integer;
begin
if Month < 3 then
begin
Inc(Month, 10);
Dec(Year);
end
else
Dec(Month, 2);
century := Year div 100;
yr := year mod 100;
dw := (((26 * month - 2) div 10) + day + yr + (yr div 4) +
(century div 4) - (2 * century)) mod 7;
if dw < 0 then DayOfWeek := dw + 7
else DayOfWeek := dw;
if (dw = 0) or ((dw+7)=0) then DayOfWeek:=7;
end;
end.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!