-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathplan.py
More file actions
112 lines (95 loc) · 3.9 KB
/
plan.py
File metadata and controls
112 lines (95 loc) · 3.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
import datetime
def new_trip(trip_dict):
trip_members_list = []
trip_date_list = []
sum_budget = 0
dictf = open("trip_dict.txt", 'a', encoding="utf-8")
print()
# 여행 이름
while True:
trip_name = input("여행 이름을 입력하세요: ")
if trip_name in trip_dict:
print("⚠ 이미 등록된 이름입니다.")
else:
break
# 참여 인원
while True:
try:
num_members = int(input("참여 인원 수를 입력하세요: "))
break
except ValueError:
print("⚠️ 숫자를 입력해주세요.")
# 공동 예산
while True:
try:
shared_budget = int(input("공동 예산을 입력하세요: "))
with open(f"{trip_name}_공동.txt", "w", encoding="utf-8") as shf:
shf.write(f"{shared_budget}\n")
break
except ValueError:
print("⚠️ 숫자를 입력해주세요.")
# 팀원 txt 생성, 개인 예산, trip_members_list 등록
for num in range(1, num_members + 1):
name_members = input(f"{num}번째 팀원의 닉네임: ")
while True:
try:
personal_budget = int(input(f"{name_members}님의 개인 예산: "))
with open(f"{trip_name}_{name_members}.txt", 'w', encoding="utf-8") as memf:
memf.write(f"{personal_budget}\n")
break
except ValueError:
print("⚠️ 숫자를 입력해주세요.")
sum_budget = sum_budget + personal_budget
dictf.write(f"{name_members}:{personal_budget},")
trip_members_list.append(name_members)
# 총 예산
sum_budget = sum_budget + shared_budget
print(f"\n이번 여행의 총 예산은 {sum_budget}원입니다.")
print("\n새 여행을 시작합니다!")
print()
# 시작일
while True:
try:
trip_start = input("여행 시작일을 입력하세요(yy-mm-dd): ")
y, m, d = map(int, trip_start.split("-"))
if (y > 99) or (m > 12) or (d > 31):
raise ValueError
break
except ValueError:
print("⚠️ 형식이 올바르지 않습니다. 다시 입력해주세요.")
trip_start = datetime.datetime(2000 + y, m, d)
# 진행일수
while True:
try:
trip_date = int(input("여행은 며칠간 진행되나요?: "))
break
except ValueError:
print("⚠️ 숫자를 입력해주세요.")
# trip_dict.txt 등록
dictf.write(f"공동예산:{shared_budget}\n")
dictf.write(f"{trip_name}::{y:02d}{m:02d}{d:02d}+{trip_date}\n")
dictf.close()
# trip_date_list 등록
for date in range(trip_date):
write_date = trip_start + datetime.timedelta(days = date)
wy, wm, wd = write_date.year - 2000, write_date.month, write_date.day
trip_date_list.append((f"{wy:02d}-{wm:02d}-{wd:02d}"))
# 출력
print(f"\n📅 여행일: ", end="")
print(', '.join(trip_date_list))
print()
for num in range(num_members):
print(f"📁 {trip_members_list[num]}님의 지출 기록장 생성 완료!")
return trip_name, trip_date_list, trip_members_list
def current_trip(trip_dict):
if not trip_dict:
print("⚠️ 등록된 여행이 없습니다.")
return None
today = datetime.date.today()
today_value = f"{today.year - 2000:02d}{today.month:02d}{today.day:02d}"
for key, value in trip_dict.items():
if today_value == value[:6]:
print(f"{key} 여행의 정보를 조회합니다...\n")
return key
print("⚠️ 진행 중인 여행이 없습니다. 가장 최근 여행의 정보를 조회합니다...\n")
return list(trip_dict.keys())[-1]