From cceedd95ba1f32b6245e80a56a130bc04710fd34 Mon Sep 17 00:00:00 2001 From: Zahra Gharagozloo Mazlaghan Date: Thu, 23 Apr 2026 21:23:49 +0330 Subject: [PATCH] Bonus Exercise 2 completed. --- src/main/java/BonusExercises.java | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/main/java/BonusExercises.java b/src/main/java/BonusExercises.java index c682bc7..e85ec4c 100644 --- a/src/main/java/BonusExercises.java +++ b/src/main/java/BonusExercises.java @@ -27,7 +27,31 @@ public class BonusExercises { If no match for a date is found in the string, return null. */ public String findDate(String string) { - // todo + //Different types of dates + String[] datePatterns = { + //American: MM/DD/YYYY + "\\b(0[1-9]|1[0-2])/(0[1-9]|1[0-9]|2[0-9]|3[0-1])/(\\d{4})\\b", + + //British: DD/MM/YYYY + "\\b(0[1-9]|1[0-9]|2[0-9]|3[0-1])/(0[1-9]|1[0-2])/(\\d{4})\\b", + + //ISO: YYYY-MM-DD + "\\b(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1])\\b", + + //Slash variant: YYYY/MM/DD + "\\b(\\d{4})/(0[1-9]|1[0-2])/(0[1-9]|1[0-9]|2[0-9]|3[0-1])\\b" + }; + + for (String pattern : datePatterns) { + Pattern p = Pattern.compile(pattern); + Matcher m = p.matcher(string); + + //To return the first date + if (m.find()) { + return m.group(); + } + } + return null; }