สมมติว่าเรามีสตริงวันที่ในรูปแบบ "วัน เดือน ปี" โดยที่วันเป็นเช่น [1st, 2nd, ..., 30, 31st], เดือนอยู่ในรูปแบบ [ม.ค., ก.พ., ... พ.ย., ธ.ค.] และ year เป็นค่าตัวเลขสี่หลักในช่วง 1900 ถึง 2100 เราต้องแปลงวันที่นี้เป็นรูปแบบ "YYYY-MM-DD"
ดังนั้น หากอินพุตเป็นเหมือน date ="23 ม.ค. 2021" ผลลัพธ์จะเป็น 2021-01-23
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
เดือน:=["ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พฤษภาคม", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค." "]
-
string:=แบ่งวันที่และสร้างรายการเช่นรูปแบบ [วัน, เดือน, ปี]
-
ปี :=string[2]
-
day :=string[0] โดยการลบอักขระสองตัวสุดท้าย
-
ถ้าวันเป็นตัวเลขหลักเดียวแล้ว
-
เชื่อม "0" กับวัน
-
-
month :=แปลงสตริง[1] เป็นเดือนโดยใช้รายการเดือน
-
ถ้าเดือนเป็นเลขหลักเดียว
-
เชื่อม "0" กับเดือน
-
-
ผลตอบแทน (ปี เดือน วัน) ในรูปแบบ "ปปปป-ดด-วว"
ตัวอย่าง (Python)
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
def solve(date):
Months=["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
string=date.split()
year = string[2]
day = string[0][:-2]
if len(day)<2:
day="0"+day
month = str(Months.index(string[1])+1)
if len(month)<2:
month="0"+month
return "{0}-{1}-{2}".format(year, month, day)
date = "23rd Jan 2021"
print(solve(date)) อินพุต
"23rd Jan 2021"
ผลลัพธ์
2021-01-23