Non c’è dubbio che usando la libreria floating point di pgf tu possa calcolare il valore che ti aspetti in un intervallo fra 0 e 1.
A me sembra che si ammazzi una zanzara con un cannone; le indicazioni che ti avevo invitato a usare porterebbero ad un codice di questo genere ([tt]\strp@pt[/tt] è una macro interna di LaTeX che serve per eliminare l’indicazione `pt’ dal valore di una lunghezza in punti;[tt]\p@[/tt] è una dimensione interna di LaTeX che vale 1pt):`
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfcalendar}
\newcount\datax % è il contatore che conserva il numero di giorni che intercorrono da \datamin
\newcount\datamin % è il contatore che conserva la data più piccola
\newcount\deltadata % è il contaotre che contiene la differenza delle date
\pgfcalendardatetojulian{1920-01-01}{\datamin} % scrive in \datax il numero di giorni da \datamin
\newcommand\tfdata[1]{%
\pgfcalendardatetojulian{#1}{\datax}
\advance\datax -\datamin\relax
}
\newcommand\calcdeltadata[1]{%
\pgfcalendardatetojulian{#1}{\deltadata}
\advance\deltadata -\datamin\relax
}
\calcdeltadata{2013-12-01} % è la data più alta; mi aspetto un rapporto in un intervallo tra 0 e 1
\makeatletter
\newcommand\rapportodate[2]{% calcolo del rapporto fra le differenze di 2 date giuliane
\strip@pt\dimexpr\p@*#1/#2\relax
}
\makeatother
\begin{document}
\tfdata{2010-12-01}
\begin{tikzpicture}
\draw (\rapportodate{\datax}{\deltadata},0) — (-90:1mm);
\end{tikzpicture}
\end{document}`
ho aggiunto solo un contatore e due macro solo per scrivere più pulito; se ne potrebbe fare a meno ma il codice sarebbe più contorto e a distanza di tempo diventerebbe incomprensibile.
Con il valore di data di 2010-12-01 si ottiene un valore fratto di circa 0,9; con la data massima si ottiene 1. e non ci sono overflow di nessun genere né numerici né dimensionali.
L’operazione \dimexpr