我有下面的函數,如果傳入的參數是一個合理的日期,它應該返回true,否則返回false。問題在於即使對於明顯合理的日期它也會返回錯誤,我無法弄清楚它有什麼問題。眼睛更銳利的人請幫助。這裏是:我的函數有什麼問題
fun reasonable_date(x: int*int*int) =
if #1 x > 0 andalso #2 x > 0 andalso #2 x <= 12 andalso #3 x > 0 andalso #3 x <= 31
then
if #2 x = 1 mod 2 andalso #2 x < 8 andalso #3 x <= 31 then true
else if #2 x = 0 mod 2 andalso #2 x >= 8 andalso #3 x <= 31
then true
else if #2 x = 0 mod 2 andalso #2 x < 8
then
if #2 x = 2 andalso (#3 x = 28 orelse #3 x = 29) then true
else if #2 x = 0 mod 2 andalso #3 x <= 30 then true
else false
else if #2 x = 1 mod 2 andalso #2 x > 8 andalso #3 x <=30 then true
else false
else false
待辦事項你的意思是它總是返回false,或者它返回一些錯誤,但不是所有的合理日期? –
你可能會考慮用適當的'andalso'或'orelse'來替換一些'if-then-else'表達式。目前情況相當混亂。 –
它總是返回false。但現在沒關係。它是固定的。謝謝 – guthik