OK, first of all I posted something by accident that wasn't ready, then I deleted it and realized that it had merged with my previous post, so that got deleted too. But it's OK, I think I have a better answer for you: as you said in your first post, you want to work with custom profile fields, which aren't handled the same way that the built in ones are.
So here's some code for a plugin using hook member_profileblock_profilebit:
Code:
if ($profilefield['profilefieldid'] == X)
{
$td = intval(vbdate('Y', TIMENOW));
$joinyear = intval($this->profile->userinfo['fieldX']);
if ($joinyear > 0 && $joinyear < 100)
{
$joinyear += ($joinyear < ($td - 2000) ? 2000 : 1900); // fix 2 digit years.
}
if ($joinyear > 0 && $joindate <= $td)
{
$profilefield['value'] .= " (Member for " . ($td - $joinyear) . " Years)";
}
}
The X's in red need to be replaced with the id of your year profile field. But I think they also don't need to be the same: you could probably create a text field just for holding the "Member for X years" message and have it set dynamically by ths code. In that case the first X would be the text field, and the second X the Year field.