Using Python for date calculations

Mark Lawrence breamoreboy at
Fri Nov 21 11:20:06 CET 2014

On 21/11/2014 08:50, Gary Herron wrote:
> On 11/21/2014 12:35 AM, Steve Hayes wrote:
>> I've finally found a use for Python.
>> When, in the course of my genealogy research, I look at census or burial
>> records, I often want to work out a person's date of birth from their
>> age.
>> It's a simple matter of mental arithmetic, but I sometimes get it
>> wrong, and
>> mislead myself. There are calculators and date calculation programs,
>> but they
>> are usually too complicated and try to do too much, so by the time you've
>> worked out what to do it takes much longer.
>> This Python script does it for me.
>> year = input("Year: ")
>> age = input("Age: ")
>> born = year-age
>> print 'Year of birth:', born
>> It's so simple, so elementary, that it's not really worth writing about,
>> except for the fact that it illustrates the KISS principle.
>> It is sometimes better to have a simple program that does one thing
>> well than
>> a complex one that does lots of things, but none of them very
>> efficiently.
>> The average hand calculator can do the same job, but you have to pick
>> it up
>> and put it down, and you can't easily see if you've made a typo.
>> Having said that, however, yes, I would perhaps like to use Python for
>> more
>> complicated date processing routines, namely to convert the kinds of
>> dates
>> produced by genealogy programs to a simple yyyy-mm-dd that computer
>> database
>> programs can understand, so that "Abt May 1677" would be rendered as
>> "1677-05-00"
>> Has anyone done something like that in Python?
> The datetime module has lots of capabilities including the several you
> mention.
> See
> Gary Herron

As we're now firmly heading into the Python 3 era would people please be 
kind enough to use the Python 3 links.  I know it's only a single 
character change but it's the principle to me.  TIA.

My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.

Mark Lawrence

More information about the Python-list mailing list