1

私は SML を初めて使用し、2 年かけてそれらを比較し、次に 2 か月かけてそれらを比較し、最後に 2 つの日付を比較するプログラムを作成しました。

私が抱えている問題は、年が最初の年よりも古い場合は停止してfalseにする必要があることですが、それが私のロジックなのか何かわからない場合は、trueまたはfalseを返す前に月と日付をチェックし続けます.

年が false の場合は月のみをチェックし、月が false の場合は日のみをチェックします。

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;
4

1 に答える 1

1

1 年に 2 つの日付を比較し、真/偽の値を返そうとしていると仮定しています。あなたがしたことはほとんど正しいです。2 番目の if ステートメントでは、 if month1<month2only かどうかを確認しますyear1=year2。それ以外の場合、年 1 = 2014、年 2 = 2013 であっても、その月が 2 番目の if ステートメントと一致していれば、真の値が得られます。

同様に、3 番目の if ステートメントでは、日のみ if をチェックしますyear1=year2 andalso month1=month2

于 2013-10-12T16:31:42.187 に答える