This is an excerpt from the latest version perlfaq4.pod, which
comes with the standard Perl distribution. These postings aim to
reduce the number of repeated questions as well as allow the community
to review and update the answers. The latest version of the complete
perlfaq is at
http://faq.perl.org .
--------------------------------------------------------------------
4.13: How do I find the current century or millennium?
Use the following simple functions:
sub get_century {
return int((((localtime(shift || time))[5] + 1999))/100);
}
sub get_millennium {
return 1+int((((localtime(shift || time))[5] + 1899))/1000);
}
On some systems, the "POSIX" module's "strftime()" function has been
extended in a non-standard way to use a %%C format, which they sometimes
claim is the "century". It isn't, because on most such systems, this is
only the first two digits of the four-digit year, and thus cannot be
used to reliably determine the current century or millennium.