import System;
import System.IO;
import System.Collections;

interface IComp {
	function less(a : Object, b : Object) : boolean;
}

function Sort(ary : ArrayList, icmp : IComp) {
	for(var i = 0; i < ary.Count - 1; i++) {
		var imin : int = i;
		for(var j = i + 1; j < ary.Count; j++) {
			if(icmp.less(ary[imin], ary[j]))
				imin = j;
		}
		var tmp = ary[imin];
		ary[imin] = ary[i];
		ary[i] = tmp;
	}
}

var a = new ArrayList();
var d = new DirectoryInfo(".");
var fs = d.GetFiles();
for(var i = 0; i < fs.length; i++)
	a.Add(fs[i]);
Sort(a, new DateComp());
for(i = 0; i < a.Count; i++)
	Console.WriteLine("{0,-20:S} {1:S}",
				a[i].Name, a[i].LastWriteTime.ToString());

class DateComp implements IComp {
	function less(a : Object, b : Object) : boolean {
		return FileInfo(a).LastWriteTime > FileInfo(b).LastWriteTime;
	}
}
