Unfortunately, calculated column approach will not work as expected :( Calculated fields are updated only if the column itself is being updated, or the item is updated. You can fiddle with setting date to future in Windows to prove it.
So I would recommend you to use XSL transformations for XsltListViewWebPart in conjunction with dateUtils.xsl from Marc D Anderson. I'm using this method for displaying "Birthday is soon" indicator in Contacts lists:
Works like a charm.
Tentative code example (this will display "age" of item in days):
<xsl:variable name="DaysToday">
<xsl:call-template name="countDaysInDateWithLeapYearDays">
<xsl:with-param name="paramDate" select="substring-before(ddwrt:TodayIso(),'T')"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="DaysCreated">
<xsl:call-template name="countDaysInDateWithLeapYearDays">
<xsl:with-param name="paramDate" select="ddwrt:FormatDateTime(string($thisNode/@Created),1033,'YYYY-MM-dd')"/>
</xsl:call-template>
</xsl:variable>
<div class="indicator">
<xsl:value-of select="number($DaysToday)-number($DaysCreated)" />
</div>
You should place this code into PrintTableCellEcbAllowed xsl template. And don't forget to include date_templates.xsl :) To learn more about XsltListViewWebPart templates, read following MSDN article: