<div dir="ltr"><div>Ken's solution can be fixed for non-leap years by using <= instead of <,</div><div>but it breaks down for leap years. e.g.</div><div><br></div><div>a := Date year: 2003 month: 3 day: 1.<br>b := Date year: 2004 month: 2 day: 29.</div><div><br></div><div>b year - a year - (a dayOfYear <= b dayOfYear ifTrue: 0 ifFalse: 1) " outputs 1 "<br></div><div><br></div><div>What seems to work is to let Date handle the leap year case with #addMonths:. e.g.</div><div><br></div><div>yd := b year - a year.<br>(a addMonths: 12 * yd) > b ifTrue: [ yd - 1 ] ifFalse: [ yd ]. " outputs 0 "<br></div><div></div><div>Balázs<br></div></div>