How can I make my If-statements less complicated
I'm making a program that lets you write in the date and then it returns the previous day aswell as the next day. If you write a date that doesnt exist, the program will tell you that it doesnt exist and exit the program. When making the procedure to check the day and month I used if statements. I always have issues using if-statements because I always make them too complicated but this time I atleast got it to work but as I guessed its overly complicated and I dont know how to shorten it.
procedure Check_Day_And_Month (Date : in Date_Type) is
begin
if Date.M <= 0 or Date.M > 12 then
raise Month_error;
elsif Date.D > 31 or Date.D <= 00 then
raise Day_Error;
elsif Date.D = 31 and(Date.M = 4 or Date.M = 6 or Date.M = 9 or Date.M = 11) then
raise day_Error;
elsif Date.D > 29 and Date.M = 2 then
raise Day_Error;
elsif Date.D = 29 and Date.M = 2 and Check_Leap(Date) = false then
raise Day_Error;
end if;
end Check_Day_And_month;
I feel like every elsif I have is needed and I dont know how I could shorten this and make it less complicated. But at the same time i'm very new to coding so I most likely am missing something.