สมมติว่าเรามีสตริงวันที่ในรูปแบบ "วัน เดือน ปี" โดยที่วันเป็นเช่น [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