Cho ngày d/m/y . Hãy kiểm tra xem đó có phải là ngày tháng năm hợp lệ không? Nếu hợp lệ, hãy tính ra xem hôm đó là thứ mấy? (Cho biết thứ của ngày đầu tiên trong năm y đó).
Giải
Var sn,thu,i,j,ng,ngay,th,n: integer; nhuan,kt: boolean;
BEGIN
Write('Nhap ngay thang nam: '); Readln(ng,th,n); nhuan := false; kt:= true;
if ((n mod 4 = 0) and (n mod 100 <> 0)) or (n mod 400=0) then nhuan:= true;
if th in [1,3,5,7,8,10,12] then ngay:=31 else if th in [4,6,9,11] then ngay:=30
else if th=2 then begin if nhuan then ngay:=29 else ngay:=28; End
Else begin Writeln('Nhap thang khong hop le.'); kt:=false; end;
If (ng > ngay) Or (ng <= 0) Then begin Writeln('Nhap ngay khong hop le');kt:=false;end;
If kt Then begin for i :=1 to th-1 do begin if i in [1,3,5,7,8,10,12] then sn:=sn+31;
if i in [4,6,9,11] then sn:=sn+30; If i = 2 Then If nhuan Then
sn:=sn+29 else sn:=sn+28; end; sn:=sn+ng; thu:=sn mod 7;
if thu=1 then Writeln('Ngay ',ng,'/',th,'/',n,' la chu nhat.');
if thu=2 then Writeln('Ngay ',ng,'/',th,'/',n,' la thu hai.');
if thu=3 then Writeln('Ngay ',ng,'/',th,'/',n,' la thu ba.');
if thu=4 then Writeln('Ngay ',ng,'/',th,'/',n,' la thu tu.');
if thu=5 then Writeln('Ngay ',ng,'/',th,'/',n,' la thu nam.');
if thu=6 then Writeln('Ngay ',ng,'/',th,'/',n,' la thu sau.');
if thu=0 then Writeln('Ngay ',ng,'/',th,'/',n,' la thu bay.');
end;
readln;
END.
No comments:
Post a Comment
Cảm ơn bạn đã nhận xét