import ĠTime Interval .* Ċ Ċ data Ġclass ĠMy Date ( val Ġyear : ĠInt , Ġval Ġmonth : ĠInt , Ġval Ġday OfMonth : ĠInt ) Ċ Ċ // ĠSupported Ġintervals Ġthat Ġmight Ġbe Ġadded Ġto Ġdates : Ċ enum Ġclass ĠTime Interval Ġ{ ĠDAY , ĠW EEK , ĠYEAR Ġ} Ċ Ċ operator Ġfun ĠMy Date . plus ( time Interval : ĠTime Interval ): ĠMy Date Ġ= Ġadd Time Intervals ( time Interval , Ġ 1 ) ĊĊ Ċ fun Ġtask 1 ( today : ĠMy Date ): ĠMy Date Ġ{ ĊĠĠĠ Ġreturn Ġtoday Ġ+ ĠYEAR Ġ+ ĠW EEK Ċ } Ċ Ċ fun Ġtask 2 ( today : ĠMy Date ): ĠMy Date Ġ{ ĊĠĠĠ Ġreturn Ġadd Time Intervals ( today , 2 , 3 , 5 ) Ċ } Ċ Ċ fun Ġadd Time Intervals Ġ( my Date : ĠMy Date , Ġyear : Int Ġ= Ġ 0 , Ġweek : ĠInt Ġ= Ġ 0 , Ġday : Int Ġ= Ġ 0 ) Ġ: ĠMy Date Ġ{ ĊĠĠĠ Ġreturn Ġmy Date ĊĠĠĠĠĠĠĠ Ġ. add Time Intervals ( Time Interval . YEAR , year ) ĊĠĠĠĠĠĠĠ Ġ. add Time Intervals ( Time Interval . WEEK , week ) ĊĠĠĠĠĠĠĠ Ġ. add Time Intervals ( Time Interval . DAY , day ) Ċ } Ċ