반응형
음력일과 D-Day 계산하는 코드 만들기 + 날짜/시간 확인
음력일과 D-Day를 계산하는 코드를 만들기 위해서 파이썬 모듈을 사용합니다. 필요한 모듈은 "lunarcalendar"와 "datetime" 모듈입니다. 아래에서는 이 두가지 모듈을 사용해서 음력 계산과 D-Day 계산에 필요한 코드를 만들고 사용된 모듈에 대해서 설명합니다.
[ 사용모듈 설명 ]
1. lunarcalendar
lunarcalendar는 Python에서 음력(태음력)과 양력(태양력)을 변환하고, 날짜 정보를 다루기 위한 라이브러리입니다. 이 라이브러리를 사용하면 양력 날짜를 음력 날짜로 변환하거나, 음력 날짜를 양력 날짜로 변환할 수 있습니다. 또한, 음력과 관련된 다양한 날짜 정보를 쉽게 처리할 수 있습니다.
- Lunar.fromSolarDate(year, month, day): 지정된 양력 날짜를 음력 날짜로 변환합니다.
- Lunar.toSolarDate(): 음력 날짜를 양력 날짜로 변환합니다.
- Lunar(year, month, day, isleap): 음력 날짜 객체를 생성합니다.
- year: 음력 연도
- month: 음력 월
- day: 음력 일
- isleap: 윤달 여부 (True 또는 False)
pip install lunarcalendar
import lunarcalendar
from datetime import datetime
# 현재 날짜와 시간 확인
now = datetime.now()
# 현재 날짜의 음력 일자 확인
lunar_date = lunarcalendar.Lunar.fromSolarDate(now.year, now.month, now.day)
print(f"양력 {now.strftime('%Y-%m-%d')} -> 음력 {lunar_date}")
# 음력 날짜를 양력 날짜로 변환
solar_date = lunar_date.toSolarDate()
print(f"음력 {lunar_date} -> 양력 {solar_date}")
2. datetime
datetime 모듈은 Python에서 날짜와 시간 정보를 처리하기 위한 표준 라이브러리입니다. 이 모듈은 날짜와 시간에 대한 다양한 작업을 수행할 수 있는 기능을 제공합니다. 여기에는 날짜와 시간의 생성, 형식 지정, 연산 등이 포함됩니다.
- datetime.date:
- 날짜 정보를 나타내는 클래스입니다.
- 연도(year), 월(month), 일(day)을 속성으로 가집니다.
- 예: date(2024, 7, 15)
- datetime.time:
- 시간 정보를 나타내는 클래스입니다.
- 시(hour), 분(minute), 초(second), 마이크로초(microsecond)를 속성으로 가집니다.
- 예: time(14, 30, 0)
- datetime.datetime:
- 날짜와 시간 정보를 모두 나타내는 클래스입니다.
- 연도, 월, 일, 시, 분, 초, 마이크로초를 속성으로 가집니다.
- 예: datetime(2024, 7, 15, 14, 30, 0)
- datetime.timedelta:
- 두 날짜 또는 시간 사이의 차이를 나타내는 클래스입니다.
- 일(days), 초(seconds), 마이크로초(microseconds) 등의 속성으로 시간 차이를 나타냅니다.
- 예: timedelta(days=5, hours=3)
- datetime.tzinfo:
- 시간대 정보를 나타내는 추상 베이스 클래스입니다.
from datetime import datetime, timedelta
# 현재 날짜와 시간
now = datetime.now()
print(f"현재 날짜와 시간: {now}")
# 특정 날짜와 시간 생성
specific_date = datetime(2024, 12, 25, 18, 0, 0)
print(f"특정 날짜와 시간: {specific_date}")
# 문자열을 날짜로 변환
date_str = "2024-07-15 14:30:00"
dt = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print(dt)
# 날짜 형식 지정
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print(f"형식화된 날짜와 시간: {formatted_date}")
# 문자열을 날짜로 변환
date_str = "2024-07-15 14:30:00"
converted_date = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print(f"문자열에서 변환된 날짜와 시간: {converted_date}")
# 날짜와 시간 연산
future_date = now + timedelta(days=10)
print(f"10일 후의 날짜와 시간: {future_date}")
# 날짜 차이 계산
delta = specific_date - now
print(f"현재와 특정 날짜 사이의 차이: {delta.days}일")
from datetime import datetime, timedelta
# 현재 날짜와 시간 확인
now = datetime.now()
print("현재 날짜와 시간:", now)
# 현재 날짜와 시간을 원하는 형식으로 출력
formatted_now = now.strftime("%Y-%m-%d %H:%M:%S")
print("형식화된 현재 날짜와 시간:", formatted_now)
# 날짜와 시간 계산
# 예: 5일 후의 날짜와 시간 계산
future_date = now + timedelta(days=5)
print("5일 후의 날짜와 시간:", future_date)
# 예: 3일 전의 날짜와 시간 계산
past_date = now - timedelta(days=3)
print("3일 전의 날짜와 시간:", past_date)
# 시간 차이 계산
# 예: 특정 날짜와 시간 설정
specific_date = datetime(2023, 12, 25, 18, 0, 0)
print("특정 날짜와 시간:", specific_date)
# 현재 날짜와 특정 날짜 사이의 차이 계산
time_difference = specific_date - now
print("현재와 특정 날짜 사이의 차이:", time_difference)
print("차이의 일수:", time_difference.days)
print("차이의 초수:", time_difference.total_seconds())
반응형
[ 음력일과 D-Day계산 ]
입력한 날짜의 음력일자와 지정한 날부터 입력한 날까지의 D-Day를 계산하는 코드는 다음과 같습니다. 이 코드는 datetime 모듈과 lunarcalendar 라이브러리를 사용합니다. 입력한 날짜의 음력 일자를 계산하고, 지정한 날짜부터 입력한 날짜까지의 D-Day를 계산하여 출력합니다.
from datetime import datetime
import lunarcalendar
def get_lunar_date(solar_date_str):
solar_date = datetime.strptime(solar_date_str, "%Y-%m-%d")
lunar_date = lunarcalendar.Lunar.fromSolarDate(solar_date.year, solar_date.month, solar_date.day)
return lunar_date
def calculate_d_day(start_date_str, end_date_str):
start_date = datetime.strptime(start_date_str, "%Y-%m-%d")
end_date = datetime.strptime(end_date_str, "%Y-%m-%d")
delta = end_date - start_date
return delta.days
def main():
# 입력한 날짜
input_date_str = input("날짜를 입력하세요 (YYYY-MM-DD): ")
# 음력 날짜 계산
lunar_date = get_lunar_date(input_date_str)
print(f"입력한 날짜(양력): {input_date_str}")
print(f"입력한 날짜(음력): {lunar_date}")
# D-Day 계산을 위한 시작 날짜 입력
start_date_str = input("시작 날짜를 입력하세요 (YYYY-MM-DD): ")
# D-Day 계산
d_day = calculate_d_day(start_date_str, input_date_str)
print(f"시작 날짜: {start_date_str}")
print(f"입력한 날짜까지 D-Day: {d_day}일")
if __name__ == "__main__":
main()
반응형
'코딩취미 > Python' 카테고리의 다른 글
파이썬 MVC 패턴 프로젝트 구성 및 예시 (0) | 2024.07.22 |
---|---|
에디터박스(QEdit)에서 최소값, 최대값 유효성 체크와 값 입력받기 (0) | 2024.07.19 |
파이썬 패키지 배포 Wheel(*.whl) 파일 특징과 사용방법 (0) | 2024.07.12 |
전체 파일경로에서 파일명과 폴더경로를 분리하는 방법 : os , pathlib 사용 (0) | 2024.06.12 |
QLineEdit 안에 Button 넣는 방법 : QToolButton or QAction 사용 (0) | 2024.06.11 |