This is a follow up to TeX capacity exceeded while parsing a date string

I want to compare two dates, say today's date and a due date. I have the due date information stored (as number strings) in macros \dueday, \duemonth, and \duemonth. I use the following, from etoolbox package:

\newcommand{\duemonth}{5} % May

    (test {\ifnumcomp{\dueyear}{>}{\year}})
    or (test {\ifnumcomp{\dueyear}{=}{\year}} and test {\ifnumcomp{\duemonth}{>}{\month}})
    or (test {\ifnumcomp{\dueyear}{=}{\year}} and test {\ifnumcomp{\duemonth}{=}{\month}} and test {\ifnumcomp{\dueday}{>}{\day}})
    {Not due yet}
    {Due immediately}

which does work, but I'm looking for a TeX-based solution that, perhaps, can do this more efficiently and without having to use etoolbox.

  • You may want to try \pdfstrcmp. May 6, 2012 at 19:21

1 Answer 1


This is doable using a series of pure number (\ifnum) tests, where the boolean logic is indicated by an 'outer' test which uses only 0/1:

\def\duemonth{5} % May

\def\notdue{Not due yet}
\def\duenow{Due immediately}

    0 %
      0 %
        0 %
        1 %
  > 0 %

  • 1
    A pure TeX-based approach, so I've used plain TeX, hence the \bye.
    – Joseph Wright
    May 6, 2012 at 19:34

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .