<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Date/Time Converter for Engauge Digitizer</title>
<meta name="keywords" content="engauge digitizer, date, time, converter">
<meta name="description" content="This Converter Tool adds date and time handling to
Engauge Digitizer">
<script src="datefromstring.js" type="text/javascript"></script>
<script src="dateconvert.js" type="text/javascript"></script>
<link rel=stylesheet type="text/css" href="dateconvert.css">
</head>
<body>
<H2>
<A HREF="index.html">
<IMG SRC="animation.png" ALIGN=MIDDLE ALT="" STYLE="border: 0px"></A>
Engauge Digitizer - Date/Time Converter</H2>
<HR WIDTH="100%">
<h2>Introduction</h2>
<p>The Converter Tool below was designed to add date and time handling
to <a href="http://digitizer.sourceforge.net">Engauge Digitizer</a>.
Specifically, this tool is used to convert axis point coordinates that sometimes
appear in the original image as date and/or time text, into numeric date
value coordinates that Engauge Digitizer can handle <sup><a href="#1">[1]</a></sup>.
The numeric date values of the digitized curve points can then be exported to your
favorite spreadsheet, which can convert those date values back to date and/or
time text.</p>
<p>The <em>absolute date and time</em> table is used to convert date/time coordinates of
the axis points. The <em>relative date and time</em> table is useful for converting the date/time
coordinate resolution, shown in the Engauge Digitizer status bar as a
decimal number, back to more understandable standard time units.</p>
<h2>Converter Tool</h2>
<form name="frm1" method=post action="http://digitizer.sourceforge.net/usermanual/dateconvert.php">
<table align=center><tr><td class=settings>
<a name="converter">Date value units</a>: <sup><a href="#2">[2]</a></sup><br/>
<input type=radio name="excelunits" value="windows" onclick="clear_form(document.frm1)" checked>Excel for Windows<br/>
<input type=radio name="excelunits" value="macintosh" onclick="clear_form(document.frm1)" >Excel for Macintosh<br/>
<input type=radio name="excelunits" value="gnumeric" onclick="clear_form(document.frm1)" >Gnumeric<br/>
</td><td class="settingsspacer">
</td><td class=settings>
Date string format: <sup><a href="#3">[3]</a></sup><br/>
<input type=radio name="format" value="english" onclick="clear_form(document.frm1)" checked>English<br/>
<input type=radio name="format" value="european" onclick="clear_form(document.frm1)" >European<br/>
</td></tr>
</table>
<br/>
<table align=center>
<tr>
<td colspan=3 class=mainheader>absolute date and time <sup><a href="#4">[4]</a></sup></td>
</tr>
<tr>
<td class=header>raw date value <sup><a href="#5">[5]</a></sup></td>
<td class=header>raw date string <sup><a href="#6">[6]</a></sup></td>
<td class=header>interpreted point in time<sup><a href="#7">[7]</a></sup></td>
</tr>
<tr>
<td><input class=inputs type=text name=absNumIn1 onkeyup="var df=document.frm1; convert_abs_value(df.excelunits, df.absNumIn1, df.absDateIn1, df.absDateOut1)"></td>
<td><input class=inputs type=text name=absDateIn1 onkeyup="var df=document.frm1; convert_abs_string(df.excelunits, df.format, df.absNumIn1, df.absDateIn1, df.absDateOut1)"></td>
<td><input class=inputswide type=text name=absDateOut1 readonly></td>
</tr>
<tr>
<td><input class=inputs type=text name=absNumIn2 onkeyup="var df=document.frm1; convert_abs_value(df.excelunits, df.absNumIn2, df.absDateIn2, df.absDateOut2)"></td>
<td><input class=inputs type=text name=absDateIn2 onkeyup="var df=document.frm1; convert_abs_string(df.excelunits, df.format, df.absNumIn2, df.absDateIn2, df.absDateOut2)"></td>
<td><input class=inputswide type=text name=absDateOut2 readonly></td>
</tr>
</table>
<br/>
<table align=center>
<tr>
<td colspan=3 class=mainheader>relative date and time <sup><a href="#8">[8]</a></sup></td>
</tr>
<tr>
<td class=header>raw date value <sup><a href="#9">[9]</a></sup></td>
<td class="header,inputs"> </td>
<td class=header>interpreted interval <sup><a href="#10">[10]</a></sup></td>
</tr>
<tr>
<td><input class=inputs type=text name=relNumIn1 onkeyup="var df=document.frm1; convert_rel_value(df.relNumIn1, df.relDateOut1)"></td>
<td class=inputs></td>
<td><input class=inputswide type=text name=relDateOut1 readonly></td>
</tr>
</table>
<noscript>
<p align=center><input type=submit></p>
<p align=center>(Javascript is unavailable, so you must use the Submit button to
update this form)</p>
</noscript>
</form>
<h2>Example</h2>
<p>In the example below (corners.png in the samples directory), the horizontal axis
is specified by date coordinates. Since Engauge Digitizer is expecting numbers
and not date strings, you enter date <em>09-12</em> into the Converter. Its corresponding
numeric date value 38972, which appears immediately on the left, is then copied to
Engauge.</p>
<p align=center><img src="dateconvert.jpg" alt="example"></p>
<h2>Footnotes</h2>
<p><sup><a name="1">[1]</a></sup> Engauge Digitizer does not directly support
date and time strings because they can quickly become very complicated: Are
the dates Gregorian or Julian? Are the date values for Excel for Windows,
Excel for Macintosh, or Gnumeric? Are the month and day specified in the
English or European order? What values will be filled in if parts of the
date and time are unspecified? Adding date and time features would only benefit a few users,
while making the user interface of Engauge Digitizer much more confusing for everyone
(as these footnotes would attest).
<p><sup><a name="2">[2]</a></sup> Excel for Windows date value is 1 for just
after midnight January 1, 1900. Excel for Macintosh date value is 0 for just
after midnight January 1, 1904. Gnumeric date value is 0 for just after midnight on
December 30, 1989.</p>
<p><sup><a name="3">[3]</a></sup> In English units the month precedes the day (9/1 is September 1). In European units the day
precedes the month (9/1 is January 9).</p>
<p><sup><a name="4">[4]</a></sup> Enter date and/or time values here that correspond to points in time on the calendar.
Any parts of the date that are not specified will be assumed to be the current year, month and day,
correspondingly. Any parts of the time that are not specified will be assumed to be zero.</p>
<p><sup><a name="5">[5]</a></sup>A number representing the days since the epoch given by footnote <sup><a href="#6">[6]</a></sup>. This number
is produced by the DATEVALUE() function that is available in common spreadsheet programs. An example is the datevalue of 27395 for January 1 1975 in Excel
for Windows. <font color=red>Konqueror browser bug</font> - Date values computed from date strings before December 13, 1901 20:45:32 (datevalue = 713.86518) may be stuck at the December date.</p>
<p><sup><a name="6">[6]</a></sup>A string containing the date and/or time, with the date always preceding the time if both are
used. The supported date and time formats are <a href="dateformats.html" target="_blank">listed</a>.</p>
<p><sup><a name="7">[7]</a></sup>This read-only field displays the results of the raw date value and raw date string conversions, in terms of an absolute point in time.</p>
<p><sup><a name="8">[8]</a></sup> Enter date and/or time values here that correspond to differences between points
in time on the calendar. Any parts of the date and time that are not specified will be assumed to be zero.</p>
<p><sup><a name="9">[9]</a></sup>A decimal number representing a time interval, in units of days.</p>
<p><sup><a name="10">[10]</a></sup>This read-only field displays