10.04.2017

Nhập ngày biết thứ

 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