Calculating Ages
This document requires the sample people.csv file.
\documentclass[captions=tableheading]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{pgfkeys,pgfcalendar}
\usepackage{datatool}
\DTLloaddb{people}{people.csv}
\newcount\julianday
\newcount\juliantoday
\newcount\age
% Compute the Julian day number for today:
\pgfcalendardatetojulian{\year-\month-\day}{\juliantoday}%
\begin{document}
Ages as of \number\year-\number\month-\number\day\ are
listed in Table~\ref{tab:ages}.
\begin{table}[htbp]
\caption{Ages (as of \number\year-\number\month-\number\day)}
\label{tab:ages}
\centering
\begin{tabular}{lc}
\bfseries Name & \bfseries Age%
\DTLforeach*{people}%
{\Forenames=forenames,\Surname=surname,\DoB=dob}%
{%
\\\Forenames\ \Surname &
% Compute the Julian day number for the date of birth
\pgfcalendardatetojulian{\DoB}{\julianday}%
% Compute \age = (\juliantoday - \julianday)/365
\age=\juliantoday
\advance\age by -\julianday
\divide\age by 365\relax
\number\age
}%
\end{tabular}
\end{table}
Non-ISO format:
\def\DoB{12/2/1995}%
\def\parsemdydate#1/#2/#3\endparsemdydate{#3-#1-#2}%
\pgfcalendardatetojulian{\expandafter\parsemdydate\DoB\endparsemdydate}{\julianday}%
% Compute \age = (\juliantoday - \julianday)/365
\age=\juliantoday
\advance\age by -\julianday
\divide\age by 365\relax
DoB = \DoB, age = \number\age.
\end{document}
Download calcage.tex or calcage.pdf.
