tools.py 663 Bytes
from datetime import (
    datetime,
    date,
    time as mktime,
    )


#################
# Compare value #
#################
MIDNIGHT_TIME = mktime(0, 0, 0)


def split_time(t):
    if isinstance(t, datetime):
        return t.date(), t.time()
    return t, MIDNIGHT_TIME


def is_same(a, b):
    if a == b:
        return True
    if not (isinstance(a, date) or isinstance(a, datetime)):
        return False
    date_a, time_a = split_time(a)
    date_b, time_b = split_time(b)
    if date_a != date_b:
        return False
    if isinstance(a, date) or isinstance(b, date):
        return True
    if time_a == time_b:
        return True
    return False