تبدیل تاریخ ها در پایتون

دوستان عزیز این هم تایع تبدیل تاریخ شمسی به میلادی و برعکس و همچنین کنترل کننده ی تاریخ شمسی
این سورس رو خودم نوشته بودم و تقریبا دو سالی هست ازشون استفاده میکنم

import date_utils.calendar_util
def mil_to_sh_with_time(mildate):
    #dd = datetime.strptime(mildate)
 
 
 
    m = date_utils.calendar_util.jd_to_persian(
        date_utils.calendar_util.gregorian_to_jd(
           int(mildate.split("/")[0].split("-")[0]),
           int(mildate.split("/")[0].split("-")[1]),
           int(mildate.split("/")[0].split("-")[2])
            ))
    dt=m[0].__str__()+"/"+m[1].__str__()+"/"+m[2].__str__()+" "+mildate.split(" ")[1]
    return dt
 
 
def mil_to_sh(mildate,splitter="-"):
 
    #dd = datetime.strptime(mildate)
    #print mildate.split(" ")[0]
    mildate = mildate.__str__()
 
    if mildate==None:
     return ""
 
    m = date_utils.calendar_util.jd_to_persian(
        date_utils.calendar_util.gregorian_to_jd(
           int(mildate.split(" ")[0].split(splitter)[0]),
           int(mildate.split(" ")[0].split(splitter)[1]),
           int(mildate.split(" ")[0].split(splitter)[2])
            ))
    dt=m[0].__str__()+"/"+m[1].__str__()+"/"+m[2].__str__()
    return dt
 
 
 
def is_valid_shamsi_date(ShamsiDate):
    try:
    #dd = datetime.strptime(mildate)
        y=int(ShamsiDate.split("/")[0])
        m=int(ShamsiDate.split("/")[1])
        d=int(ShamsiDate.split("/")[2])
        if y > 1800: return False
        if m>12: return False
        if d>31: return False
 
        m = date_utils.calendar_util.jd_to_gregorian(
            date_utils.calendar_util.persian_to_jd(y, m, d))
        dt=m[0].__str__()+"/"+m[1].__str__()+"/"+m[2].__str__()
        return True
    except Exception as inst:
        return False
 
 
 
def sh_to_mil(mildate):
    #dd = datetime.strptime(mildate)
    m = date_utils.calendar_util.jd_to_gregorian(
        date_utils.calendar_util.persian_to_jd(
           int(mildate.split("/")[0]),
           int(mildate.split("/")[1]),
           int(mildate.split("/")[2])
            ))
    dt=m[0].__str__()+"/"+m[1].__str__()+"/"+m[2].__str__()
    return dt

دانلود کلاس مورد نیاز : date_utils

دیدگاهتان را بنویسید