Converting the Column - Age script to evaluator columns as they are much quicker.
These three columns provide Age Modified, Age Created, and Age Accessed in YY:DDD:HH:MM:SS format, respectively.
EDIT: updated based on @lxp's excellent - and brief - code down thread.
AGE MODIFIED:
<?xml version="1.0"?>
<evalcolumn align="0" attrrefresh="yes" autorefresh="yes" customgrouping="no" foldertype="all" header="P-Age [Mod]" keyword="PAgeMod" maxstars="5" namerefresh="no" nocache="no" reversegroups="no" reversesort="no" supportmarkup="no" title="Precise Age - Modified" type="7">secs = Age(modifieddate, "s");
ss = secs Mod 60 As "#2";
mm = secs / 60 Mod 60 As "#2";
hh = secs / 60 / 60 Mod 24 As "#2";
dd = secs / 60 / 60 / 24 Mod 365 As "#3";
yy = secs / 60 / 60 / 24 / 365 As "#2";
return yy + ":" + dd + ":" + hh + ":" + mm + ":" + ss;</evalcolumn>
Longer version for educational purposes
<?xml version="1.0"?>
<evalcolumn align="2" attrrefresh="no" autorefresh="no" category="date" customgrouping="no" foldertype="all" graphbehind="3" header="Age [Mod - y:d:h:m:s]" keyword="AgeModifiedExact" maxstars="5" namerefresh="no" nocache="no" reversegroups="no" reversesort="no" supportmarkup="no" title="Age [Modified - Exact]" type="0" widthpx="150">if (operation == "sort")
return modifieddate; // Enable sorting by generic modifieddate
secs = Abs(DateDiff("s", Now(), modifieddate)); // Get difference in seconds between current second and second folder/file was last modified
s = secs Mod 60;
m = secs / 60 Mod 60;
h = secs / 60 / 60 Mod 24;
d = secs / 60 / 60 / 24 Mod 365;
y = secs / 60 / 60 / 24 / 365;
// SECONDS
if (s == 0) ss = "00";
elseif (s < 10) ss = "0" + s; // 0 < s < 10
else ss = s; // s > 9
// MINUTES
if (m == 0) mm = "00";
elseif (m < 10) mm = "0" + m; // 0 < m < 10
else mm = m; //m > 9
// HOURS
if (h == 0) hh = "00";
elseif (h < 10) hh = "0" + h; // 0 < h < 10
else hh = h; // h > 9
// DAYS
if (d == 0) dd = "000";
elseif (d < 10) dd = "00" + d; // 0 < d < 10
elseif (d < 100) dd = "0" + d; // 9 < d < 100
else dd = d; // h > 99
// YEARS
if (y == 0) yy = "00";
elseif (y < 10) yy = "0" + y; // 0 < y < 10
else yy = y; // y > 9
return Trim(yy + ":" + dd + ":" + hh + ":" + mm + ":" + ss); // yy:ddd:hh:mm:ss</evalcolumn>
AGE CREATED:
<?xml version="1.0"?>
<evalcolumn align="0" attrrefresh="yes" autorefresh="yes" customgrouping="no" foldertype="all" header="P-Age [Cre]" keyword="PAgeCre" maxstars="5" namerefresh="no" nocache="no" reversegroups="no" reversesort="no" supportmarkup="no" title="Precise Age - Created" type="7">secs = Age(createddate, "s");
ss = secs Mod 60 As "#2";
mm = secs / 60 Mod 60 As "#2";
hh = secs / 60 / 60 Mod 24 As "#2";
dd = secs / 60 / 60 / 24 Mod 365 As "#3";
yy = secs / 60 / 60 / 24 / 365 As "#2";
return yy + ":" + dd + ":" + hh + ":" + mm + ":" + ss;</evalcolumn>
Longer version for educational purposes
<?xml version="1.0"?>
<evalcolumn align="2" attrrefresh="yes" autorefresh="yes" category="date" customgrouping="no" foldertype="all" header="Age [Cre - y:d:h:m:s]" keyword="AgeCreatedExact" maxstars="5" namerefresh="yes" nocache="no" reversegroups="no" reversesort="no" supportmarkup="no" title="Age [Created - Exact]" type="0">if (operation == "sort")
return createddate; // Enable sorting by generic modifieddate
secs = Abs(DateDiff("s", Now(), createddate)); // Get difference in seconds between current second and second folder/file was last created
s = secs Mod 60;
m = secs / 60 Mod 60;
h = secs / 60 / 60 Mod 24;
d = secs / 60 / 60 / 24 Mod 365;
y = secs / 60 / 60 / 24 / 365;
// SECONDS
if (s == 0) ss = "00";
elseif (s < 10) ss = "0" + s; // 0 < s < 10
else ss = s; // s > 9
// MINUTES
if (m == 0) mm = "00";
elseif (m < 10) mm = "0" + m; // 0 < m < 10
else mm = m; //m > 9
// HOURS
if (h == 0) hh = "00";
elseif (h < 10) hh = "0" + h; // 0 < h < 10
else hh = h; // h > 9
// DAYS
if (d == 0) dd = "000";
elseif (d < 10) dd = "00" + d; // 0 < d < 10
elseif (d < 100) dd = "0" + d; // 9 < d < 100
else dd = d; // h > 99
// YEARS
if (y == 0) yy = "00";
elseif (y < 10) yy = "0" + y; // 0 < y < 10
else yy = y; // y > 9
return Trim(yy + ":" + dd + ":" + hh + ":" + mm + ":" + ss); // yy:ddd:hh:mm:ss</evalcolumn>
AGE ACCESSED:
<?xml version="1.0"?>
<evalcolumn align="0" attrrefresh="yes" autorefresh="yes" customgrouping="no" foldertype="all" header="P-Age [Acc]" keyword="PAgeAcc" maxstars="5" namerefresh="no" nocache="no" reversegroups="no" reversesort="no" supportmarkup="no" title="Precise Age - Accessed" type="7">secs = Age(accesseddate, "s");
ss = secs Mod 60 As "#2";
mm = secs / 60 Mod 60 As "#2";
hh = secs / 60 / 60 Mod 24 As "#2";
dd = secs / 60 / 60 / 24 Mod 365 As "#3";
yy = secs / 60 / 60 / 24 / 365 As "#2";
return yy + ":" + dd + ":" + hh + ":" + mm + ":" + ss;</evalcolumn>
Longer version for educational purposes
<?xml version="1.0"?>
<evalcolumn align="2" attrrefresh="no" autorefresh="no" category="date" customgrouping="no" foldertype="all" header="Age [Acc - y:d:h:m:s]" keyword="AgeAccessedExact" maxstars="5" namerefresh="no" nocache="no" reversegroups="no" reversesort="no" supportmarkup="no" title="Age [Accessed - Exact]" type="0">if (operation == "sort")
return accesseddate;
date_now = Now();
when_accessed = accesseddate;
secs = Abs(DateDiff("s", date_now, when_accessed));
s = secs Mod 60;
m = secs / 60 Mod 60;
h = secs / 60 / 60 Mod 24;
d = secs / 60 / 60 / 24 Mod 365;
y = secs / 60 / 60 / 24 / 365;
//SECONDS
if (s == 0) ss = "00";
elseif (s < 10) ss = "0" + s;
else ss = s; // s > 9
//MINUTES
if (m == 0) mm = "00";
elseif (m < 10) mm = "0" + m;
else mm = m; //m > 9
//HOURS
if (h == 0) hh = "00";
elseif (h < 10) hh = "0" + h;
else hh = h; // h > 9
//DAYS
if (d == 0) dd = "000";
elseif (d < 10) dd = "00" + d;
elseif (d < 100) dd = "0" + d;
else dd = d; //h > 99
//YEARS
if (y == 0) yy = "00";
elseif (y < 10) yy = "0" + y;
else yy = y; // y > 9
return Trim(yy + ":" + dd + ":" + hh + ":" + mm + ":" + ss);</evalcolumn>
To use any of these columns, open Preferences > Evaluator Columns > Add.