PDA

View Full Version : مقاله: تبدیل تاریخ ها در پایتون



Bahmany
شنبه 31 خرداد 1393, 10:36 صبح
با سلام
دوستان عزیز این هم تایع تبدیل تاریخ شمسی به میلادی و برعکس و همچنین کنترل کننده ی تاریخ شمسی
این سورس رو خودم نوشته بودم و تقریبا دو سالی هست ازشون استفاده میکنم :



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



اگر مشکلی بود در خدمتیم