Amazon Interview Question
Software Engineer / Developers<pre lang="" line="1" title="CodeMonkey93011" class="run-this">struct Date
{
int dd;
int mon;
int year;
};
int convert(char* mon);
int compMonDiff(Date& dt1, Date& dt2);
int main()
{
Date dt1,dt2;
cout<<"Enter date 1 ";
char mon[4];
cin>>mon>>dt1.dd>>dt1.year;
dt1.mon = convert(mon);
cout<<"Enter date 2 ";
cin>>mon>>dt2.dd>>dt2.year;
dt2.mon = convert(mon);
switch(compMonDiff(dt1,dt2))
{
case 0:
cout<<"Less than One month apart\n";
break;
case 1:
cout<<"One month apart\n";
break;
case 2:
cout<<"More than one month apart\n";
break;
}
}
int compMonDiff(Date& dt1, Date& dt2)
{
int diff = 12*(dt2.year - dt1.year);
diff += dt2.mon - dt1.mon;
if(diff == 0)
return 0;
else if(diff > 1)
return 2;
else
{
if(dt1.dd == dt2.dd)
return 1;
else if(dt2.dd < dt1.dd)
return 0;
else return 2;
}
}
int convert(char* mon)
{
if(!strcmp(mon,"Jan"))
return 1;
if(!strcmp(mon,"Feb"))
return 2;
if(!strcmp(mon,"Mar"))
return 3;
if(!strcmp(mon,"Apr"))
return 4;
if(!strcmp(mon,"May"))
return 5;
if(!strcmp(mon,"Jun"))
return 6;
if(!strcmp(mon,"Jul"))
return 7;
if(!strcmp(mon,"Aug"))
return 8;
if(!strcmp(mon,"Sep"))
return 9;
if(!strcmp(mon,"Oct"))
return 10;
if(!strcmp(mon,"Nov"))
return 11;
if(!strcmp(mon,"Dec"))
return 12;
}</pre><pre title="CodeMonkey93011" input="yes">
</pre>
- ss June 07, 2011