TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Possible Duplicate:
How do I split a date?

Does anyone know how to extract year from date in parameter of own macro?



where #1 contain either date already in format yyyy or in format dd.mm.yyyy, which \themacro would convert to plain yyyy...

I hope I made myself clear, well, simply speaking, I just need to extract the year from date (if extraction is necessary).

share|improve this question

marked as duplicate by Werner, egreg, Tom Bombadil, Marco Daniel, clemens Aug 24 '12 at 20:35

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

Have a look to the first answer of the question how-do-i-split-a-date. – Kurt Aug 23 '12 at 17:22
up vote 5 down vote accepted

user1189687 already proposed a solution that I think is better, but since I already begun to write this, here is if you want a plain tex solution :

The point here is to recognize that you are in the first case or in the other. As @Kurt pointed out, it is trivial to do if you know the format of your input. But here, apparently you don't.

So what I would do would be :


\def\@themacro #1.#2\end@themacro{%
\def\themacro #1 {%
  \@themacro#1.\relax\end@themacro% get day or year
      \GenericError{}{Wrong date format}{}{}% Manage the error
    \expandafter\@themacro\@temprem\end@themacro% get month
      \GenericError{}{Wrong date format}{}{}% Manage the Error
      \expandafter\@themacro\@temprem\end@themacro% get year
        \GenericError{}{Wrong date format}{}{}% Manage the Error

The advantage of this solution is that you detect incorect syntax and can have a fallback or throw an error, as you wish.

Oh, I almost forgot ... You of course get the year as the replacement text of \year.

In case they exist, you also can get \day and \month.

share|improve this answer
Wow, I just went back to my answer and realized it was totally broken. I'm not really sure why you accepted it in that state, but anyway, now it is fixed and properly working. – Samuel Albert Aug 23 '12 at 22:21

Try \StrRight in the xstring package:






with result:

enter image description here

share|improve this answer
Thank you for your answer. This truly is simple, clear and elegant solution. Though, I was originally looking for vanilla plainTeX solution. Still, I do deeply appreciate your help and click to button up :-) – mathemage Aug 23 '12 at 20:37

Not the answer you're looking for? Browse other questions tagged or ask your own question.