بابلز لرن مرجع آموزش های تخصصی
برنامه ای بنویسید که تاریخ تولد کاربر را گرفته و اگر میلادی بود آن را به خورشیدی و اگر خورشیدی بود آن را به میلادی تبدیل کند سپس هر دوتای آن را نمایش دهد.
همچنین سن کاربر را نمایش داده و تعداد روز های مانده تا تولد آن را محاسبه کرده و نمایش بدهد.
سورس کد پروژه:
from datetime import date,datetime
from persiantools.jdatetime import JalaliDate
def days_between(d1, d2):
d1 = datetime.strptime(d1, "%Y-%m-%d")
d2 = datetime.strptime(d2, "%Y-%m-%d")
return abs((d2 - d1).days)
# AD Date or Solar Date.
MOS = str(input("Is this a solar date (Y/n)? "))
#DOB = date of birth
DOB = str(input("Enter a Date of birth (0000-00-00): "))
#YMD = Year,Month,Day (type:list)
YMD = DOB.split('-')
DateToday = str(date.today()).split('-')
if(int(DateToday[0]) < 2000):
DateToday = JalaliDate(int(DateToday[0]), int(DateToday[1]), int(DateToday[2])).to_gregorian()
DT = str(DateToday).split("-")
else:
DateToday = date.today()
DT = str(DateToday).split("-")
#is solar date.
if (MOS.lower() == "y"):
#DOB = date of birth, Convert to AD Date.
AD = str(JalaliDate(int(YMD[0]), int(YMD[1]), int(YMD[2])).to_gregorian())
L_AD = str(AD).split("-")
Solar = DOB
else:
Solar = JalaliDate.to_jalali(int(YMD[0]), int(YMD[1]), int(YMD[2]))
L_Solar = Solar.split("-")
AD = DOB
if(int(DT[1]) < int(L_AD[1])):
#UTB = until the birthday.
UTB = str(int(DT[0]) + 1) + "-01-01"
L_AD[0] = str(int(DT[0]) + 1)
UTB_AD = str(L_AD[0] + "-" + L_AD[1] + "-" + L_AD[2])
else:
L_AD[0] = str(int(DT[0]))
UTB_AD = str(L_AD[0] + "-" + L_AD[1] + "-" + L_AD[2])
UTB = DateToday
print("Today, AD: " + str(date.today()) + " Jalali: " + str(JalaliDate.today()))
print("Your date of birth in AD: " + str(AD))
print("Your date of birth to Jalali: " + str(Solar))
print("Your age: " + str(days_between(str(DateToday),str(AD))//365) + " Years old")
print("Days left until the birthday: " + str(days_between(str(UTB),str(UTB_AD))) + " Days")
همچنین می توانید به این لینک مراجعه کنید و سورس ها را جدا داخل یک صفحه به صورت رنگی تماشا کنید: