c# - what's wrong with this code (.net 2.0) -
i trying latest date using code below, goes infinte loop , displays nothing in console,
public static void sortsortymydates() { int = 1; datetime[] dtlist = new datetime[20]; datetime latestdate = dtlist[1]; dtlist[1] = convert.todatetime("28/05/2013 13:00:00"); dtlist[2] = convert.todatetime("23/04/2013 13:00:00"); dtlist[3] = convert.todatetime("25/03/2013 13:00:00"); dtlist[4] = convert.todatetime("08/04/2013 13:00:00"); while(i < dtlist.length) { int result = datetime.compare(latestdate, dtlist[i]); if (result < 0) continue; else latestdate = dtlist[i]; ++i; } console.writeline(latestdate.tostring()); }
you have problem loop logic:
if (result < 0) continue;
if result < 0
don't increment i
, , loop doesn't progress.
also, comparison wrong way around. result < 0
mean currently-tested date later current maximum. reason you're getting 01/01/0001
output because you're current code finds earliest date, , of array unintialised (and therefore lot earlier test values!).
switch if
instead (and remove else
entirely):
if (result < 0) latestdate = dtlist[i];
Comments
Post a Comment