Pascal

Modified: Wednesday, 22-12-2021 07:00 AM

Xem ngày hôm trước và hôm sau của ngày nhập vào


Code tự tạo

var dt,mt,dd,mm:byte;         //Ngay temp, thang temp, ngay, thang
    y,yt:integer;             //Nam, nam temp
function maxd(m:byte;y:integer):byte;
begin
     case m of
         1,3,5,7,8,10,12:maxd:=31;
         4,6,9,11:maxd:=30;
         2:
         begin
              if (y mod 4=0) and (y mod 100 <>0) then
              maxd:=29
              else 
              maxd:=28;
         end;
    end;
end;
begin
    readln(dd);
    readln(mm);
    readln(y);
    if (dd>=1) and (dd<=maxd(mm,y)) and (mm>=1) and (mm<=12) then
    begin
         writeln('Ngay ban nhap: ',dd,'/',mm,'/',y);
         //Ngay hom truoc
         if dd=1 then
         begin
            if mm=1 then
            begin
                 mt:=12;
                 yt:=y-1;
            end
  else
            begin
                 mt:=mm-1;
                 yt:=y;
            end;
            dt:=maxd(mt,yt);
         end
         else
         begin
                 dt:=dd-1;
                 mt:=mm;
                 yt:=y;
         end;                        
         writeln('Ngay hom truoc la: ',dt,'/',mt,'/',yt);
         //Ngay hom sau
         if dd=maxd(mm,y) then
         begin
            dt:=1;  
            if mm=12 then
            begin
                 mt:=1;
                 yt:=y+1;
            end
            else
            begin
                 mt:=mm+1;
                 yt:=y;
            end
         end
         else
         begin
                 dt:=dd+1;
                 mt:=mm;
                 yt:=y;
         end;                        
         writeln('Ngay hom sau la: ',dt,'/',mt,'/',yt);         
    end
    else writeln('Ngay ban nhap chua chinh xac !');
    readln;
end.

Code dùng thư viện

uses sysutils;
var yy,mm,dd : word;
    day,dayPre,dayNext:TDateTime;
begin
    readln(dd,mm,yy); 
    day:=EncodeDate(yy,mm,dd);
    dayPre:=day-1;
    dayNext:=day+1;
    DecodeDate (dayPre,yy,mm,dd);
    writeln (format ('Date Prev is (dd/mm/yy): %d/%d/%d ',[dd,mm,yy]));
    DecodeDate (dayNext,yy,mm,dd);
    writeln (format ('Date Next is (dd/mm/yy): %d/%d/%d ',[dd,mm,yy]));
    readln;
end.