output2url = { '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' } def time2date(input): chu_ky_thoi_gian = input['CHU KỲ THỜI GIAN'] thu = input['THỨ'] ngay = input['NGÀY'] tuan = input['TUẦN'] thang = input['THÁNG'] quy = input['QUÝ'] nam = input['NĂM'] import datetime import calendar from dateutil.relativedelta import relativedelta current_date = datetime.date.today() output = 'error' if chu_ky_thoi_gian=='ngày': # hôm kia if ngay=='hôm kia': output = current_date - datetime.timedelta(days=2) # hôm qua elif ngay=='hôm qua': output = current_date - datetime.timedelta(days=1) # hôm nay elif ngay=='hôm nay': output = current_date # ngày mai elif ngay=='mai': output = current_date + datetime.timedelta(days=1) # ngày kia elif ngay=='kia': output = current_date + datetime.timedelta(days=2) # đầu elif ngay=='đầu': if thang=='trước': needed_thang = 12 if current_date.month==1 else current_date.month-1 needed_nam = current_date.year-1 if current_date.month==1 else current_date.year output = datetime.date( needed_nam, needed_thang, 1 ) elif thang=='này': needed_thang = current_date.month needed_nam = current_date.year output = datetime.date( needed_nam, needed_thang, 1 ) elif thang=='sau': needed_thang = 1 if current_date.month==12 else current_date.month+1 needed_nam = current_date.year+1 if current_date.month==12 else current_date.year output = datetime.date( needed_nam, needed_thang, 1 ) else: print('ngày đầu') output = current_date # cuối elif ngay=='cuối': if thang=='trước': needed_thang = 12 if current_date.month==1 else current_date.month-1 needed_nam = current_date.year-1 if current_date.month==1 else current_date.year output = datetime.date( needed_nam, needed_thang, calendar.monthrange(needed_nam, needed_thang)[1] ) elif thang=='này': needed_thang = current_date.month needed_nam = current_date.year output = datetime.date( needed_nam, needed_thang, calendar.monthrange(needed_nam, needed_thang)[1] ) elif thang=='sau': needed_thang = 1 if current_date.month==12 else current_date.month+1 needed_nam = current_date.year+1 if current_date.month==12 else current_date.year output = datetime.date( needed_nam, needed_thang, calendar.monthrange(needed_nam, needed_thang)[1] ) else: print('ngày cuối') output = current_date # xxx elif ngay.isdigit(): ngay = int(ngay) if thang.isdigit(): thang = int(thang) if nam.isdigit(): nam = int(nam) try: output = datetime.date(nam, thang, ngay) except ValueError: print("ngày xxx tháng yyy nam xxx") output = current_date else: try: output = datetime.date(current_date.year, thang, ngay) except ValueError: print("ngày xxx tháng yyy nam xxx") output = current_date else: try: output = datetime.date(current_date.year, current_date.month, ngay) except ValueError: print('ngày xxx') output = current_date elif ngay=='khác': # thứ hai tuần sau # thứ hai tuần này # thứ hai tuần trước # thứ hai tuần gần nhất # thứ hai if thu != "khác": if tuan=='khác' or tuan=='gần nhất': current_thu = current_date.weekday()+2 input_thu = 8 if thu=='chủ nhật' else int(thu) if input_thu < current_thu: daydelta = current_thu - input_thu output = current_date - datetime.timedelta(days=daydelta) elif input_thu == current_thu: output = current_date - datetime.timedelta(days=7) else: daydelta = input_thu - current_thu output = current_date - datetime.timedelta(days=7-daydelta) elif tuan=='này': current_thu = current_date.weekday()+2 input_thu = 8 if thu=='chủ nhật' else int(thu) if input_thu < current_thu: daydelta = current_thu - input_thu output = current_date - datetime.timedelta(days=daydelta) elif input_thu == current_thu: output = current_date else: daydelta = input_thu - current_thu output = current_date + datetime.timedelta(days=daydelta) elif tuan=='trước': current_thu = current_date.weekday()+2 input_thu = 8 if thu=='chủ nhật' else int(thu) if input_thu < current_thu: daydelta = current_thu - input_thu + 7 output = current_date - datetime.timedelta(days=daydelta) elif input_thu == current_thu: output = current_date - datetime.timedelta(days=7) else: daydelta = input_thu - current_thu output = current_date - datetime.timedelta(days=7-daydelta) elif tuan=='sau': current_thu = current_date.weekday()+2 input_thu = 8 if thu=='chủ nhật' else int(thu) if input_thu < current_thu: daydelta = 7 - (current_thu - input_thu) output = current_date + datetime.timedelta(days=daydelta) elif input_thu == current_thu: output = current_date + datetime.timedelta(days=7) else: daydelta = input_thu - current_thu output = current_date + datetime.timedelta(days=7+daydelta) elif thu=='khác': current_thu = current_date.weekday() if tuan=='trước' or tuan=='gần nhất': # ngày cuối tuần daydelta = current_thu+1 output = current_date - datetime.timedelta(days=daydelta) elif tuan=='này': daydelta = 6 - current_thu if daydelta > 0: output = current_date + datetime.timedelta(days=daydelta) else: output = current_date elif tuan=='sau': daydelta = 13 - current_thu output = current_date + datetime.timedelta(days=daydelta) else: print('ngày khác thứ khác tuần khác') output = current_date else: # return default for ngay output = current_date print('Error chu ky thoi gian: ngay') elif chu_ky_thoi_gian=='tháng': # ngày cuối tháng if thu != 'khác' or ngay != 'khác' or tuan != 'khác': print('Invalid') needed_thang = 12 if current_date.month==1 else current_date.month-1 needed_nam = current_date.year-1 if current_date.month==1 else current_date.year output = datetime.date( needed_nam, needed_thang, calendar.monthrange(needed_nam, needed_thang)[1] ) elif thang=='trước': needed_thang = 12 if current_date.month==1 else current_date.month-1 needed_nam = current_date.year-1 if current_date.month==1 else current_date.year output = datetime.date( needed_nam, needed_thang, calendar.monthrange(needed_nam, needed_thang)[1] ) elif thang=='này': needed_thang = current_date.month needed_nam = current_date.year output = datetime.date( needed_nam, needed_thang, calendar.monthrange(needed_nam, needed_thang)[1] ) elif thang=='sau': needed_thang = 1 if current_date.month==12 else current_date.month+1 needed_nam = current_date.year+1 if current_date.month==12 else current_date.year output = datetime.date( needed_nam, needed_thang, calendar.monthrange(needed_nam, needed_thang)[1] ) elif thang.isdigit(): thang = int(thang) if nam.isdigit(): nam = int(nam) output = datetime.date( int(nam), int(thang), calendar.monthrange(int(nam), int(thang))[1] ) else: if thang > current_date.month: output = datetime.date( current_date.year-1, thang, calendar.monthrange(current_date.year-1, thang)[1] ) else: output = datetime.date( current_date.year, thang, calendar.monthrange(current_date.year, thang)[1] ) elif thang=='khác': needed_thang = 12 if current_date.month==1 else current_date.month-1 needed_nam = current_date.year-1 if current_date.month==1 else current_date.year output = datetime.date( needed_nam, needed_thang, calendar.monthrange(needed_nam, needed_thang)[1] ) else: # ngay cuoi thang truoc needed_thang = 12 if current_date.month==1 else current_date.month-1 needed_nam = current_date.year-1 if current_date.month==1 else current_date.year output = datetime.date( needed_nam, needed_thang, calendar.monthrange(needed_nam, needed_thang)[1] ) print('Error chu ky thoi gian: thang') elif chu_ky_thoi_gian=='quý': if quy in ['1', '2', '3', '4', 'I', 'II', 'III', 'IV']: output = "Valid" output = current_date # print('Chu ky thoi gian: quy ' + quy) else: output = "Invalid" output = current_date # print('Error chu ky thoi gian: quy') elif chu_ky_thoi_gian=='năm': if nam.isdigit(): output = "Valid" output = current_date # print("Chu ky thoi gian: nam " + nam) else: output = "Invalid" output = current_date # print('Error chu ky thoi gian: năm') elif chu_ky_thoi_gian=='khác': output = "Valid" output = current_date else: output = current_date return output