goodthings4me.tistory.com
■ main() 함수에 태어난 연월일을 인자로 넣으면 현재까지 살아온 총 일수와 연월일을 계산해주는 프로그램 코딩 연습(파이썬 초보자의 datetime() 함수 활용)
from datetime import datetime
class PeriodFromBirth:
month_days = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31) # 월(1~12)별 일수
def __init__(self, year, month, day):
self.set_prd_birthday(year, month, day)
def get_prd_birthday(self): # 생년월일에서 현재까지의 기간 등
print('당신은 태어나서 오늘까지 {0:,}일({1}년 {2}개월 {3}일)을 살았습니다.'\
.format(self.tday.days, self.years, self.month_cnt, self.days))
return [self.tday, self.years, self.month_cnt, self.days]
def set_prd_birthday(self, year, month, day):
self.ubirthday = datetime(year, month, day)
self.now = datetime.now()
self.tday = self.now - self.ubirthday # 총 일수
# self.tday는 <class 'datetime.timedelta'>
self.leap_years = [n for n in range(self.ubirthday.year, self.now.year + 1) if n % 4 == 0 ]
# 태어난 해부터 현재까지의 윤년 리스트
self.years = (self.tday.days - len(self.leap_years)) // 365 # 지난 총 연(年)수
self.days = (self.tday.days - len(self.leap_years)) % 365
# 연(年)수 제외한 올해 일수(단, 윤년 일수 제외)
self.month_cnt = 0 # 올 해의 지난 월수
if self.ubirthday.month <= self.now.month and self.ubirthday.day <= self.now.day:
for i in range(self.ubirthday.month + 1, self.now.month):
if self.days - PeriodFromBirth.month_days[i-1] >= 0:
self.month_cnt += 1 # 지난 월수 누적
self.days -= PeriodFromBirth.month_days[i-1]
else:
break
self.days_left()
else:
for i in range(self.ubirthday.month + 1, 13): # 생년의 월 다음 월부터 12월말까지
if self.days - PeriodFromBirth.month_days[i-1] >= 0:
self.month_cnt += 1
self.days -= PeriodFromBirth.month_days[i-1]
else:
break
for i in range(1, self.now.month): # 1월부터 현재 월의 전월까지
if self.days - PeriodFromBirth.month_days[i-1] >= 0:
self.month_cnt += 1
self.days -= PeriodFromBirth.month_days[i-1]
else:
break
self.days_left()
def days_left(self): # 남은 전체 일수를 월과 일로 구분하여 각각 계산
if self.days >= PeriodFromBirth.month_days[self.ubirthday.month-1]:
self.m, self.d = divmod(self.days, PeriodFromBirth.month_days[self.ubirthday\
.month-1])
self.month_cnt += self.m
self.days = self.d
def __str__(self):
return '당신은 태어나서 오늘까지 {0:,}일({1}년 {2}개월 {3}일)을 살았습니다.'\
.format(self.tday.days, self.years, self.month_cnt, self.days)
def main():
pb = PeriodFromBirth(2000, 3, 14)
#print(pb)
tdelta = pb.get_prd_birthday()
main()
[실행 결과]
당신은 태어나서 오늘까지 7,498일(20년 6개월 8일)을 살았습니다.
블로그 인기글
엑셀 시트 분리 저장 - 엑셀 파일의 시트를 분리하여 저장하기
엑셀을 사용하다 보면 엑셀 시트를 분리해서 저장해야 할 때가 있다. 최근에도 이런 경우가 발생하여 구글링 후 엑셀 시트 분리 업무를 수행하고 내친김에 다른 사람들도 사용할 수 있도록 파이썬 tkinter로 프로그램으로 만들어 보았다. Excel Sheets 분리 저장하는 프로그램(with 파이썬 Tkinter) ※ 프로그램 다운로드(네이버 MYBOX에서 공유) : ExcelSeparateSheets.zip ▶ 프래그램을 실행하면 다음과 같이 초기 화면이 보인다. 찾아보기 : 엑셀 파일이 있는 폴더를 선택한다. (프로그램이 있는 최상위 디렉터리가 열린다) 실행하기 : 프로그램 실행 버튼 상태 변경 순서 : 실행전 → 실행 중 → Sheet "OOO" 분리 저장 중 → 실행 완료 실행 결과 확인 : 엑셀 파..
goodthings4me.tistory.com
폐업 신고 절차와 부가가치세 신고하는 방법
폐업 신고 시 세무서 안 가고 온라인으로 신고하는 방법인 '국세청 홈택스를 이용하여 폐업 신고하는 절차와 폐업 후 해야 하는 부가가치세 신고, 인건비 저리, 종합소득세 신고 등에 대해 포스팅합니다. 폐업 신고 시 홈택스 이용하는 방법과 부가가치세 등 신고 절차 여러가지 사유로 폐업을 해야 할 때, 예전에는 세무서를 방문해야 했지만 국세청 홈택스가 생긴 이후에는 사업자 등록이나 폐업 등을 인터넷으로 할 수가 있게 되었습니다. 특히, 코로나 시국인 요즘은 더더욱 온라인 신청 업무가 더 활성화되었죠. 폐업을 한다는 것 자체가 우울한 일인데, 발품을 파는 것보다는 커피 한잔 하면서 인터넷으로 간단하게 처리하는 게 좋을 듯하여 그 절차를 올려봅니다. 폐업은 폐업 신고와 함께 폐업 후 절차까지 모두 마쳐야 불이익이..
goodthings4me.tistory.com
[국세청] 현금영수증가맹점으로 가입바랍니다. 메시지 해결방법(개인사업자)
▶ 현금영수증 가맹점 가입 메시지를 받고... 온라인 쇼핑몰 사업을 시작하려고 사업자등록증을 발급받고 난 후 얼마 안 있어서 국세청으로부터 어느 시점까지 '현금영수증 가맹점'으로 가입하라는 문자메시지가 받았었다. 그 메시지 기한이 오늘 도래했는데, 인터넷에서 찾아보니 홈택스에서 현금영수증 발급 사업자 신청을 할 수가 있었다. [관련내용] 홈>국세정책/제도>전자(세금)계산서/현금영수증/신용카드>현금영수증∙신용카드>가맹점가입 ▶ 홈택스 사이트에서 신청하는 절차는 다음과 같다. 우선, 홈택스에 로그인을 해야 합니다. 세상이 좋아져서 공인인증서 없이도 손쉽게 간편인증 로그인이 가능하다. 여러 인증방법 중 카카오톡 인증이 가장 편리한 거 같다. 간편인증 로그인 후 상단 '조회/발급' 탭 클릭 후 '현금영수증>현금..
goodthings4me.tistory.com
'코딩 연습 > 코딩배우기' 카테고리의 다른 글
[python] 파이썬 문자열 관련 함수들 (0) | 2020.09.27 |
---|---|
[python] 파이썬으로 비밀번호 유효성 검사하는 코딩하기 (0) | 2020.09.24 |
[django] 파이썬 Django(장고) 템플릿 문법 (0) | 2020.09.22 |
[python] 파이썬 스페셜 메소드 (Special Method) 사용 예제 (0) | 2020.09.22 |
[python] 파이썬 재귀함수, 람다 함수 연습 (0) | 2020.09.21 |
댓글