嵌套的if语句在SML中不起作用

时间:2013-10-12 13:20:51

标签: sml

我是SML的新手,我编写了一个需要两年时间并对它们进行比较的程序,然后需要两个月的时间来比较它们,最后两个日期。

我遇到的问题是,如果年份比第一年早,它应该停止并且是假的,但是有些人不确定这是不是我的逻辑或其他东西继续检查几个月然后返回真假之前的日期

我希望它只检查月份是否为年,只检查月份是否为假。

fun is_older(year1 : int,  month1 : int, day1 : int, year2 : int, month2 : int, day2 : int) =
if year1 < year2 andalso year1 > 0
then true
else
    if month1 < month2 andalso month1 > 0 andalso month2 <= 12
    then true
else
    if day1 < day2 andalso day1 > 0 andalso day2 <= 31
    then true

else false;

1 个答案:

答案 0 :(得分:1)

我假设您正在尝试比较一年中的两个日期,并返回true / false值。你所做的大多是正确的。在第二个if语句中,您只想month1<month2检查year1=year2是否为year1=year2 andalso month1=month2。否则,即使第1年= 2014年,第2年= 2013年,如果他们的月份与您的第二个if语句一致,您将获得真实价值。

同样,在您的第三个if语句中,您只想在{{1}}。

时检查天数