#!/usr/bin/python
# -*- coding:utf8 -*-

# Codé par 20-100 le 25/05/12

# Module pour transformer une chaîne de caractère en une date selon pleins
# de formats possibles

import time

# pour comprendre les dates en français
import locale
locale.setlocale(locale.LC_ALL,'')
formats = [
"%d/%m/%Y", # 25/05/2012
"%d/%m/%y", # 25/05/12
"%d %b %y", # 25 mai 12 (janv. févr. mars avril mail juin juil. août sept. oct. nov. déc.)
"%d %b %Y", # 25 mai 2012
"%d %B %y", # idem mais cette fois le nom du mois en entier
"%d %B %Y", #                                               avec l'année à 4 chiffres
"%Y-%m-%d",
"%y-%m-%d"]

class ThisIsNotADate(Exception):
    pass

def cast_as_date(chain):
    for format in formats:
        try:
            return time.strptime(chain,format)
        except:
            pass
    raise ThisIsNotADate
