diff --git a/exo-004/index.html b/exo-004/index.html
new file mode 100644
index 0000000..8bbba07
--- /dev/null
+++ b/exo-004/index.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ Document
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exo-004/index.js b/exo-004/index.js
new file mode 100644
index 0000000..cb83a1e
--- /dev/null
+++ b/exo-004/index.js
@@ -0,0 +1,65 @@
+import {isValidIsbn, isValidIsbn10, isValidIsbn13} from "https://cdn.jsdelivr.net/gh/didiercrunch/cours-420-301-ah@latest/modules-examples/books.js";
+import {isBalanced} from "./util.js";
+
+function question1(){
+ let input1 = document.getElementById("input-1")
+ let inputText = input1.value;
+ document.getElementById("output-1").innerText = inputText;
+}
+
+function question4(){
+ let input1 = document.getElementById("input-1")
+ let inputText = input1.value;
+ if(isValidIsbn(inputText)){
+ document.getElementById("output-1").innerText = "Isbn est valide";
+ } else {
+ document.getElementById("output-1").innerText = "Isbn n'est pas valide";
+ }
+}
+
+function getQuestion5Message(text){
+ if(isValidIsbn13(text)){
+ return "Ceci est un isbn-13 valide";
+ }
+ if(isValidIsbn10(text)){
+ return "Ceci est un isbn-10 valide";
+ }
+ return "Ceci n'est pas un isbn";
+}
+
+function question5(){
+ let input1 = document.getElementById("input-1")
+ let inputText = input1.value;
+ document.getElementById("output-1").innerText = getQuestion5Message(inputText);
+
+}
+
+
+function getQuestion6Message(text){
+ if(isBalanced(text)){
+ return "Les parantheses sont balancées";
+ }
+ return "Les parantheses ne sont pas balancées";
+}
+
+function question6(){
+ let input1 = document.getElementById("input-1")
+ let inputText = input1.value;
+ document.getElementById("output-1").innerText = getQuestion6Message(inputText);
+
+}
+
+
+
+
+document.getElementById("button-1")
+ .addEventListener("click", question1);
+
+document.getElementById("button-2")
+ .addEventListener("click", question4);
+
+document.getElementById("button-3")
+ .addEventListener("click", question5);
+
+document.getElementById("button-4")
+ .addEventListener("click", question6);
\ No newline at end of file
diff --git a/exo-004/util.js b/exo-004/util.js
new file mode 100644
index 0000000..e434c58
--- /dev/null
+++ b/exo-004/util.js
@@ -0,0 +1,15 @@
+export function isBalanced(str){
+ let counter = 0;
+ for(const letter of str){
+ if(letter === "("){
+ counter += 1;
+ }
+ if(letter === ")"){
+ counter -= 1;
+ }
+ if(counter < 0){
+ return false;
+ }
+ }
+ return counter === 0;
+}
\ No newline at end of file
diff --git a/exo_date.js b/exo_date.js
new file mode 100644
index 0000000..2f60b97
--- /dev/null
+++ b/exo_date.js
@@ -0,0 +1,61 @@
+
+function question1(){
+ let date = new Date()
+ console.log(date.toLocaleString())
+ console.log(date.toLocaleTimeString());
+}
+
+function getMonthName(monthIndex){
+ const months = ["janvier", "fevrier", "mars", "avril", "mai", "juin", "juillet", "aout", "sept", "oct", "nov", "dec"];
+ return months[monthIndex];
+}
+
+function question2(){
+ let date = new Date()
+ let zeroIndexedMonth = date.getMonth();
+ console.log(getMonthName(zeroIndexedMonth))
+}
+
+function question3(){
+ let date = new Date();
+ console.log(date.getFullYear())
+}
+
+function question4(){
+ let date = new Date();
+ console.log(date.getTime())
+}
+
+
+function question5(){
+ let date = new Date();
+ console.log(date.getMinutes())
+}
+
+
+function question6(){
+ let date = new Date();
+ console.log(date.getTimezoneOffset() / 60)
+}
+
+function question7(){
+ let date = new Date();
+ date.setFullYear(date.getFullYear() + 1);
+ console.log(date.getTime())
+}
+
+function question8(){
+ let date = new Date();
+ date.setMonth(date.getMonth() - 1);
+ console.log(date.toString())
+}
+
+
+question1();
+question2();
+question3();
+question4();
+question5();
+question6();
+question7();
+question8();
\ No newline at end of file
diff --git a/foo.js b/foo.js
new file mode 100644
index 0000000..dffaa4e
--- /dev/null
+++ b/foo.js
@@ -0,0 +1,13 @@
+import {HockeyGame} from "https://cdn.jsdelivr.net/gh/didiercrunch/cours-420-301-ah@006.1/modules-examples/mod.js";
+
+let game1 = new HockeyGame();
+let game2 = new HockeyGame();
+game1.awayTeamScores();
+game1.homeTeamScores();
+game2.homeTeamScores()
+game1.homeTeamScores();
+game1.awayTeamScores();
+game2.homeTeamScores()
+game1.homeTeamScores();
+console.log(`Le gagnant de la partie 1 est: ${game1.winner()}`)
+console.log(`Le gagnant de la partie 2 est: ${game2.winner()}`)
\ No newline at end of file