Tran Xuan Huy commited on
Commit
42bf7eb
·
1 Parent(s): 40d09b3

Upload 2 files

Browse files
Files changed (2) hide show
  1. component2date.py +282 -0
  2. output2url.json +1 -0
component2date.py ADDED
@@ -0,0 +1,282 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ def time2date(input):
3
+ chu_ky_thoi_gian = input['CHU KỲ THỜI GIAN']
4
+ thu = input['THỨ']
5
+ ngay = input['NGÀY']
6
+ tuan = input['TUẦN']
7
+ thang = input['THÁNG']
8
+ quy = input['QUÝ']
9
+ nam = input['NĂM']
10
+ import datetime
11
+ import calendar
12
+ from dateutil.relativedelta import relativedelta
13
+ current_date = datetime.date.today()
14
+ output = 'error'
15
+ if chu_ky_thoi_gian=='ngày':
16
+ # hôm kia
17
+ if ngay=='hôm kia':
18
+ output = current_date - datetime.timedelta(days=2)
19
+ # hôm qua
20
+ elif ngay=='hôm qua':
21
+ output = current_date - datetime.timedelta(days=1)
22
+ # hôm nay
23
+ elif ngay=='hôm nay':
24
+ output = current_date
25
+ # ngày mai
26
+ elif ngay=='mai':
27
+ output = current_date + datetime.timedelta(days=1)
28
+ # ngày kia
29
+ elif ngay=='kia':
30
+ output = current_date + datetime.timedelta(days=2)
31
+ # đầu
32
+ elif ngay=='đầu':
33
+ if thang=='trước':
34
+ needed_thang = 12 if current_date.month==1 else current_date.month-1
35
+ needed_nam = current_date.year-1 if current_date.month==1 else current_date.year
36
+ output = datetime.date(
37
+ needed_nam,
38
+ needed_thang,
39
+ 1
40
+ )
41
+ elif thang=='này':
42
+ needed_thang = current_date.month
43
+ needed_nam = current_date.year
44
+ output = datetime.date(
45
+ needed_nam,
46
+ needed_thang,
47
+ 1
48
+ )
49
+ elif thang=='sau':
50
+ needed_thang = 1 if current_date.month==12 else current_date.month+1
51
+ needed_nam = current_date.year+1 if current_date.month==12 else current_date.year
52
+ output = datetime.date(
53
+ needed_nam,
54
+ needed_thang,
55
+ 1
56
+ )
57
+ else:
58
+ print('ngày đầu')
59
+ output = current_date
60
+ # cuối
61
+ elif ngay=='cuối':
62
+ if thang=='trước':
63
+ needed_thang = 12 if current_date.month==1 else current_date.month-1
64
+ needed_nam = current_date.year-1 if current_date.month==1 else current_date.year
65
+ output = datetime.date(
66
+ needed_nam,
67
+ needed_thang,
68
+ calendar.monthrange(needed_nam, needed_thang)[1]
69
+ )
70
+ elif thang=='này':
71
+ needed_thang = current_date.month
72
+ needed_nam = current_date.year
73
+ output = datetime.date(
74
+ needed_nam,
75
+ needed_thang,
76
+ calendar.monthrange(needed_nam, needed_thang)[1]
77
+ )
78
+ elif thang=='sau':
79
+ needed_thang = 1 if current_date.month==12 else current_date.month+1
80
+ needed_nam = current_date.year+1 if current_date.month==12 else current_date.year
81
+ output = datetime.date(
82
+ needed_nam,
83
+ needed_thang,
84
+ calendar.monthrange(needed_nam, needed_thang)[1]
85
+ )
86
+ else:
87
+ print('ngày cuối')
88
+ output = current_date
89
+ # xxx
90
+ elif ngay.isdigit():
91
+ ngay = int(ngay)
92
+ if thang.isdigit():
93
+ thang = int(thang)
94
+ if nam.isdigit():
95
+ nam = int(nam)
96
+ try:
97
+ output = datetime.date(nam, thang, ngay)
98
+ except ValueError:
99
+ print("ngày xxx tháng yyy nam xxx")
100
+ output = current_date
101
+ else:
102
+ try:
103
+ output = datetime.date(current_date.year, thang, ngay)
104
+ except ValueError:
105
+ print("ngày xxx tháng yyy nam xxx")
106
+ output = current_date
107
+ else:
108
+ try:
109
+ output = datetime.date(current_date.year, current_date.month, ngay)
110
+ except ValueError:
111
+ print('ngày xxx')
112
+ output = current_date
113
+ elif ngay=='khác':
114
+ # thứ hai tuần sau
115
+ # thứ hai tuần này
116
+ # thứ hai tuần trước
117
+ # thứ hai tuần gần nhất
118
+ # thứ hai
119
+ if thu != "khác":
120
+ if tuan=='khác' or tuan=='gần nhất':
121
+ current_thu = current_date.weekday()+2
122
+ input_thu = 8 if thu=='chủ nhật' else int(thu)
123
+ if input_thu < current_thu:
124
+ daydelta = current_thu - input_thu
125
+ output = current_date - datetime.timedelta(days=daydelta)
126
+ elif input_thu == current_thu:
127
+ output = current_date - datetime.timedelta(days=7)
128
+ else:
129
+ daydelta = input_thu - current_thu
130
+ output = current_date - datetime.timedelta(days=7-daydelta)
131
+ elif tuan=='này':
132
+ current_thu = current_date.weekday()+2
133
+ input_thu = 8 if thu=='chủ nhật' else int(thu)
134
+ if input_thu < current_thu:
135
+ daydelta = current_thu - input_thu
136
+ output = current_date - datetime.timedelta(days=daydelta)
137
+ elif input_thu == current_thu:
138
+ output = current_date
139
+ else:
140
+ daydelta = input_thu - current_thu
141
+ output = current_date + datetime.timedelta(days=daydelta)
142
+ elif tuan=='trước':
143
+ current_thu = current_date.weekday()+2
144
+ input_thu = 8 if thu=='chủ nhật' else int(thu)
145
+ if input_thu < current_thu:
146
+ daydelta = current_thu - input_thu + 7
147
+ output = current_date - datetime.timedelta(days=daydelta)
148
+ elif input_thu == current_thu:
149
+ output = current_date - datetime.timedelta(days=7)
150
+ else:
151
+ daydelta = input_thu - current_thu
152
+ output = current_date - datetime.timedelta(days=7-daydelta)
153
+ elif tuan=='sau':
154
+ current_thu = current_date.weekday()+2
155
+ input_thu = 8 if thu=='chủ nhật' else int(thu)
156
+ if input_thu < current_thu:
157
+ daydelta = 7 - (current_thu - input_thu)
158
+ output = current_date + datetime.timedelta(days=daydelta)
159
+ elif input_thu == current_thu:
160
+ output = current_date + datetime.timedelta(days=7)
161
+ else:
162
+ daydelta = input_thu - current_thu
163
+ output = current_date + datetime.timedelta(days=7+daydelta)
164
+ elif thu=='khác':
165
+ current_thu = current_date.weekday()
166
+ if tuan=='trước' or tuan=='gần nhất': # ngày cuối tuần
167
+ daydelta = current_thu+1
168
+ output = current_date - datetime.timedelta(days=daydelta)
169
+ elif tuan=='này':
170
+ daydelta = 6 - current_thu
171
+ if daydelta > 0:
172
+ output = current_date + datetime.timedelta(days=daydelta)
173
+ else:
174
+ output = current_date
175
+ elif tuan=='sau':
176
+ daydelta = 13 - current_thu
177
+ output = current_date + datetime.timedelta(days=daydelta)
178
+ else:
179
+ print('ngày khác thứ khác tuần khác')
180
+ output = current_date
181
+ else: # return default for ngay
182
+ output = current_date
183
+ print('Error chu ky thoi gian: ngay')
184
+
185
+ elif chu_ky_thoi_gian=='tháng': # ngày cuối tháng
186
+ if thu != 'khác' or ngay != 'khác' or tuan != 'khác':
187
+ print('Invalid')
188
+ needed_thang = 12 if current_date.month==1 else current_date.month-1
189
+ needed_nam = current_date.year-1 if current_date.month==1 else current_date.year
190
+ output = datetime.date(
191
+ needed_nam,
192
+ needed_thang,
193
+ calendar.monthrange(needed_nam, needed_thang)[1]
194
+ )
195
+
196
+ elif thang=='trước':
197
+ needed_thang = 12 if current_date.month==1 else current_date.month-1
198
+ needed_nam = current_date.year-1 if current_date.month==1 else current_date.year
199
+ output = datetime.date(
200
+ needed_nam,
201
+ needed_thang,
202
+ calendar.monthrange(needed_nam, needed_thang)[1]
203
+ )
204
+ elif thang=='này':
205
+ needed_thang = current_date.month
206
+ needed_nam = current_date.year
207
+ output = datetime.date(
208
+ needed_nam,
209
+ needed_thang,
210
+ calendar.monthrange(needed_nam, needed_thang)[1]
211
+ )
212
+ elif thang=='sau':
213
+ needed_thang = 1 if current_date.month==12 else current_date.month+1
214
+ needed_nam = current_date.year+1 if current_date.month==12 else current_date.year
215
+ output = datetime.date(
216
+ needed_nam,
217
+ needed_thang,
218
+ calendar.monthrange(needed_nam, needed_thang)[1]
219
+ )
220
+ elif thang.isdigit():
221
+ thang = int(thang)
222
+ if nam.isdigit():
223
+ nam = int(nam)
224
+ output = datetime.date(
225
+ int(nam),
226
+ int(thang),
227
+ calendar.monthrange(int(nam), int(thang))[1]
228
+ )
229
+ else:
230
+ if thang > current_date.month:
231
+ output = datetime.date(
232
+ current_date.year-1,
233
+ thang,
234
+ calendar.monthrange(current_date.year-1, thang)[1]
235
+ )
236
+ else:
237
+ output = datetime.date(
238
+ current_date.year,
239
+ thang,
240
+ calendar.monthrange(current_date.year, thang)[1]
241
+ )
242
+ elif thang=='khác':
243
+ needed_thang = 12 if current_date.month==1 else current_date.month-1
244
+ needed_nam = current_date.year-1 if current_date.month==1 else current_date.year
245
+ output = datetime.date(
246
+ needed_nam,
247
+ needed_thang,
248
+ calendar.monthrange(needed_nam, needed_thang)[1]
249
+ )
250
+ else: # ngay cuoi thang truoc
251
+ needed_thang = 12 if current_date.month==1 else current_date.month-1
252
+ needed_nam = current_date.year-1 if current_date.month==1 else current_date.year
253
+ output = datetime.date(
254
+ needed_nam,
255
+ needed_thang,
256
+ calendar.monthrange(needed_nam, needed_thang)[1]
257
+ )
258
+ print('Error chu ky thoi gian: thang')
259
+ elif chu_ky_thoi_gian=='quý':
260
+ if quy in ['1', '2', '3', '4', 'I', 'II', 'III', 'IV']:
261
+ output = "Valid"
262
+ output = current_date
263
+ # print('Chu ky thoi gian: quy ' + quy)
264
+ else:
265
+ output = "Invalid"
266
+ output = current_date
267
+ # print('Error chu ky thoi gian: quy')
268
+ elif chu_ky_thoi_gian=='năm':
269
+ if nam.isdigit():
270
+ output = "Valid"
271
+ output = current_date
272
+ # print("Chu ky thoi gian: nam " + nam)
273
+ else:
274
+ output = "Invalid"
275
+ output = current_date
276
+ # print('Error chu ky thoi gian: năm')
277
+ elif chu_ky_thoi_gian=='khác':
278
+ output = "Valid"
279
+ output = current_date
280
+ else:
281
+ output = current_date
282
+ return output
output2url.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"hni_ngày": "/pages/screen/6215", "dni_ngày": "/pages/screen/6376", "idc_tháng": "/pages/screen/3195", "qbh_ngày": "/pages/screen/6338", "tnn_ngày": "/pages/screen/6295", "pyn_ngày": "/pages/screen/6340", "vtc_ngày": "/pages/screen/2690", "dcn_tháng": "/pages/screen/6546", "vtu_tháng": "/pages/screen/6409", "hậu giang_ngày": "/pages/screen/6401", "bkn_ngày": "/pages/screen/6166", "bpc_tháng": "/pages/screen/6525", "ldg_ngày": "/pages/screen/6377", "tỉnh/tp_ngày": "/pages/screen/4434", "vcm_tháng": "/pages/screen/3110", "pto_tháng": "/pages/screen/6541", "tqg_ngày": "/pages/screen/6277", "long an_ngày": "/pages/screen/6435", "tvh_ngày": "/pages/screen/6275", "hdg_ngày": "/pages/screen/6415", "hni_tháng": "/pages/screen/6475", "vts_ngày": "/pages/screen/3229", "vtm_tháng": "/pages/screen/3097", "tbh_tháng": "/pages/screen/6516", "hyn_ngày": "/pages/screen/6400", "vtp_ngày": "/pages/screen/2741", "qnh_tháng": "/pages/screen/6522", "nbh_ngày": "/pages/screen/6345", "td_ngày": "/pages/screen/2354", "nat_ngày": "/pages/screen/2919", "vtx_tháng": "/pages/screen/4895", "vts_tháng": "/pages/screen/3235", "tnn_tháng": "/pages/screen/6498", "vcm_ngày": "/pages/screen/3105", "kgg_tháng": "/pages/screen/6575", "nbh_tháng": "/pages/screen/6530", "vpc_ngày": "/pages/screen/6164", "vtpost_ngày": "/pages/screen/3030", "vtm_ngày": "/pages/screen/3092", "hcm_tháng": "/pages/screen/6476", "tgg_tháng": "/pages/screen/6412", "mov_ngày": "/pages/screen/2761", "vtg_tháng": "/pages/screen/2945", "stg_ngày": "/pages/screen/6316", "kon tum_tháng": "/pages/screen/6560", "bgg_tháng": "/pages/screen/6519", "bte_tháng": "/pages/screen/6526", "kgg_ngày": "/pages/screen/6456", "vtcc_ngày": "/pages/screen/3216", "gli_ngày": "/pages/screen/6349", "tnh_tháng": "/pages/screen/6411", "vdtc_tháng": "/pages/screen/3077", "vds_tháng": "/pages/screen/3055", "vlg_tháng": "/pages/screen/6496", "qnh_ngày": "/pages/screen/6357", "hth_tháng": "/pages/screen/6579", "bnh_tháng": "/pages/screen/6539", "nan_ngày": "/pages/screen/6346", "ntn_tháng": "/pages/screen/6542", "bdh_ngày": "/pages/screen/6235", "idc_ngày": "/pages/screen/3189", "xmcp_tháng": "/pages/screen/3126", "hcm_ngày": "/pages/screen/6161", "qni_tháng": "/pages/screen/6521", "stl_tháng": "/pages/screen/2804", "bkn_tháng": "/pages/screen/6537", "long an_tháng": "/pages/screen/6558", "mov_tháng": "/pages/screen/2772", "stg_tháng": "/pages/screen/6414", "hth_ngày": "/pages/screen/6405", "vtz_tháng": "/pages/screen/2898", "ndh_ngày": "/pages/screen/6343", "myn_tháng": "/pages/screen/5149", "pto_ngày": "/pages/screen/6341", "bdg_tháng": "/pages/screen/6515", "lci_ngày": "/pages/screen/6352", "bdh_tháng": "/pages/screen/6518", "ct_tháng": "/pages/screen/3042", "ctm_tháng": "/pages/screen/9682", "bte_ngày": "/pages/screen/6315", "tgg_ngày": "/pages/screen/6170", "sla_ngày": "/pages/screen/6318", "dtp_ngày": "/pages/screen/6347", "hue_tháng": "/pages/screen/6578", "hv_tháng": "/pages/screen/5524", "hue_ngày": "/pages/screen/6404", "bgg_ngày": "/pages/screen/6167", "bpc_ngày": "/pages/screen/6171", "cbg_ngày": "/pages/screen/6335", "hbh_tháng": "/pages/screen/6517", "vtsport_tháng": "/pages/screen/5512", "vbd_tháng": "/pages/screen/2878", "vtpost_tháng": "/pages/screen/3021", "n_tháng": "/pages/screen/6532", "qti_tháng": "/pages/screen/6536", "hgg_tháng": "/pages/screen/6595", "vtp_tháng": "/pages/screen/2866", "bdg_ngày": "/pages/screen/6165", "pyn_tháng": "/pages/screen/6524", "hdg_tháng": "/pages/screen/6552", "qti_ngày": "/pages/screen/6173", "xmcp_ngày": "/pages/screen/3132", "dlk_tháng": "/pages/screen/6635", "btn_ngày": "/pages/screen/6317", "bnh_ngày": "/pages/screen/6169", "stl_ngày": "/pages/screen/2827", "vtk_ngày": "/pages/screen/5279", "ct_ngày": "/pages/screen/3048", "cto_ngày": "/pages/screen/6336", "kha_ngày": "/pages/screen/6455", "lcu_tháng": "/pages/screen/6556", "lci_tháng": "/pages/screen/6548", "tỉnh/tp_tháng": "/pages/screen/4546", "tha_tháng": "/pages/screen/6499", "gli_tháng": "/pages/screen/6553", "myn_ngày": "/pages/screen/5133", "tnh_ngày": "/pages/screen/6296", "qni_ngày": "/pages/screen/6356", "tqg_tháng": "/pages/screen/6497", "lcu_ngày": "/pages/screen/6350", "cmu_ngày": "/pages/screen/6355", "blu_ngày": "/pages/screen/6276", "hgg_ngày": "/pages/screen/6399", "hậu giang_tháng": "/pages/screen/6577", "qnm_ngày": "/pages/screen/6174", "vtg_ngày": "/pages/screen/2958", "dng_tháng": "/pages/screen/6616", "blu_tháng": "/pages/screen/6523", "ctm_ngày": "/pages/screen/9668", "lsn_tháng": "/pages/screen/6547", "vtc_tháng": "/pages/screen/2701", "vtcc_tháng": "/pages/screen/3223", "vtl_ngày": "/pages/screen/2749", "lsn_ngày": "/pages/screen/6348", "sla_tháng": "/pages/screen/6535", "hnm_ngày": "/pages/screen/6402", "dtp_tháng": "/pages/screen/6554", "vcs_ngày": "/pages/screen/3178", "vdtc_ngày": "/pages/screen/3067", "nat_tháng": "/pages/screen/2910", "cto_tháng": "/pages/screen/6544", "dng_ngày": "/pages/screen/6344", "vtnet_tháng": "/pages/screen/5503", "hnm_tháng": "/pages/screen/6549", "hyn_tháng": "/pages/screen/6576", "vpc_tháng": "/pages/screen/6495", "hbh_ngày": "/pages/screen/6353", "td_tháng": "/pages/screen/2425", "cmu_tháng": "/pages/screen/6529", "n_ngày": "/pages/screen/6337", "ldg_tháng": "/pages/screen/6555", "vht_tháng": "/pages/screen/3266", "qnm_tháng": "/pages/screen/6520", "vam_tháng": "/pages/screen/5528", "vtl_tháng": "/pages/screen/2816", "vlg_ngày": "/pages/screen/6255", "agg_tháng": "/pages/screen/6413", "vmc_tháng": "/pages/screen/8744", "kha_tháng": "/pages/screen/6561", "ndh_tháng": "/pages/screen/6543", "btn_tháng": "/pages/screen/6540", "kon tum_ngày": "/pages/screen/6436", "qbh_tháng": "/pages/screen/6538", "vds_ngày": "/pages/screen/3059", "hải phòng_ngày": "/pages/screen/6403", "ntn_ngày": "/pages/screen/6342", "cbg_tháng": "/pages/screen/6527", "vcs_tháng": "/pages/screen/3183", "tha_ngày": "/pages/screen/6168", "vtu_ngày": "/pages/screen/6162", "vtt_ngày": "/pages/screen/2667", "agg_ngày": "/pages/screen/6163", "vtz_ngày": "/pages/screen/2887", "vtk_tháng": "/pages/screen/3101", "dlk_ngày": "/pages/screen/6375", "vtt_tháng": "/pages/screen/2679", "dcn_ngày": "/pages/screen/6339", "ybi_tháng": "/pages/screen/6406", "tbh_ngày": "/pages/screen/6172", "tvh_tháng": "/pages/screen/6410", "hpg_tháng": "/pages/screen/6580", "ybi_ngày": "/pages/screen/6216", "vbd_ngày": "/pages/screen/2855", "nan_tháng": "/pages/screen/6533"}