برنامه ای با زبان پایتون بنویسید که تاریخ تولد را گرفته و عملیات های ذکر شده را انجام بدهد.

بازدید ها: 660.0 
0.0

برنامه ای بنویسید که تاریخ تولد کاربر را گرفته و اگر میلادی بود آن را به خورشیدی و اگر خورشیدی بود آن را به میلادی تبدیل کند سپس هر دوتای آن را نمایش دهد.

همچنین سن کاربر را نمایش داده و تعداد روز های مانده تا تولد آن را محاسبه کرده و نمایش بدهد.

توسط bubbleslearn در 486 روز قبل ساعت 12:17
امتیاز: 40.0
دسته بندی ها: پایتون python

1 پاسخ


1.0

سورس کد پروژه:

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")

همچنین می توانید به این لینک مراجعه کنید و سورس ها را جدا داخل یک صفحه به صورت رنگی تماشا کنید:

https://www.bubbleslearn.ir/code/?c=515

توسط bubbleslearn در 480 روز قبل ساعت 15:18 ویرایش 27 روز قبل ساعت 15:27
امتیاز: 40.0
ارسال نظر  گزارش


ورود به حساب کاربری