From 982c1ccf5e16b842cd78e6b34930cfa2c51ac5cb Mon Sep 17 00:00:00 2001 From: favourachara07 Date: Fri, 8 Mar 2024 18:44:25 +0100 Subject: [PATCH] updates --- README-template.md | 94 +++++++++++----- assets/images/Screenshot (783).png | Bin 0 -> 50177 bytes index.css | 23 ++-- index.html | 34 +++--- index.js | 174 +++++++++++++++++++++-------- 5 files changed, 226 insertions(+), 99 deletions(-) create mode 100644 assets/images/Screenshot (783).png diff --git a/README-template.md b/README-template.md index dfda919..969524e 100644 --- a/README-template.md +++ b/README-template.md @@ -37,15 +37,10 @@ Users should be able to: ### Screenshot -![](./screenshot.jpg) +![](./assets/images/Screenshot%20(783).png) -Add a screenshot of your solution. The easiest way to do this is to use Firefox to view your project, right-click the page and select "Take a Screenshot". You can choose either a full-height screenshot or a cropped one based on how long the page is. If it's very long, it might be best to crop it. -Alternatively, you can use a tool like [FireShot](https://getfireshot.com/) to take the screenshot. FireShot has a free option, so you don't need to purchase it. -Then crop/optimize/edit your image however you like, add it to your project, and update the file path in the image above. - -**Note: Delete this note and the paragraphs above when you add your screenshot. If you prefer not to add a screenshot, feel free to remove this entire section.** ### Links @@ -59,50 +54,86 @@ Then crop/optimize/edit your image however you like, add it to your project, and - Semantic HTML5 markup - CSS custom properties - Flexbox -- CSS Grid -- Mobile-first workflow -- [React](https://reactjs.org/) - JS library -- [Next.js](https://nextjs.org/) - React framework -- [Styled Components](https://styled-components.com/) - For styles +- Vanilla JS -**Note: These are just examples. Delete this note and replace the list above with your own choices** ### What I learned -Use this section to recap over some of your major learnings while working through this project. Writing these out and providing code samples of areas you want to highlight is a great way to reinforce your own knowledge. +I really learnt alot during this project. I learned while working on the Javascript section of the project. This project involved calculations that can only be achieved by thinking really logically and reasoning. In the html section, I was able to develop more and better understanding of classes and ids, and also the right use of elements. For the CSS, I was able to understand and develop a method fo styling that suits me, i was also able to understand more concepts that i found challenging by applying it in my styles. For the JS section, I developed a better understanding of the DOM, if and else statements, and I also learnt and developed my principle of critical thinking and reasoning To see how you can add code snippets, see below: ```html -

Some HTML code I'm proud of

+
+
-- years
+
-- months
+
-- days
+
``` ```css -.proud-of-this-css { - color: papayawhip; +/* the animation of the age numbers */ +.animate{ + opacity: 0; + animation: myfirst 1s ease-in-out 0.6s normal forwards; +} +@keyframes myfirst { + 0% { + opacity: 0%; + } + + 100% { + opacity: 100%; + } } ``` ```js -const proudOfThisFunc = () => { - console.log('🎉') -} +// the main calculation behind the age calculator +let year_total, month_total, day_total; + + if (curMonth > month) { + year_total = curYear - year; + document.querySelector(".dash1").innerText = year_total; + } else { + year_total = curYear - year - 1; + document.querySelector(".dash1").innerText = year_total; + } + + if (month <= curMonth) { + month_total = curMonth - month; + monthNames(); + document.querySelector(".dash2").innerText = month_total + 1; + } else { + month_total = 12 - (month - curMonth); + monthNames(); + document.querySelector(".dash2").innerText = month_total; + } + + if (curDay >= day) { + day_total = curDay - day; + monthNames(); + document.querySelector(".dash3").innerText = day_total; + } else { + const tempDate = new Date(curYear, curMonth - 1, 0); // Get the last day of the previous month + day_total = tempDate.getDate() - (day - curDay); + monthNames(); + document.querySelector(".dash3").innerText = day_total; + } ``` If you want more help with writing markdown, we'd recommend checking out [The Markdown Guide](https://www.markdownguide.org/) to learn more. -**Note: Delete this note and the content within this section and replace with your own learnings.** + ### Continued development -Use this section to outline areas that you want to continue focusing on in future projects. These could be concepts you're still not completely comfortable with or techniques you found useful that you want to refine and perfect. +I hope to focus on learning and working with React after i have completed two more projects with html,css and js because working and commanding the dom directly by myself is very tiring. I want that solid foundation before moving on to React. Also, i want to master the act of making my codes shorter and more efficient and cleaner. + -**Note: Delete this note and the content within this section and replace with your own plans for continued development.** ### Useful resources -- [Example resource 1](https://www.example.com) - This helped me for XYZ reason. I really liked this pattern and will use it going forward. -- [Example resource 2](https://www.example.com) - This is an amazing article which helped me finally understand XYZ. I'd recommend it to anyone still learning this concept. +- [W3Schools](https://www.w3schools.com/css) - This helped me for the animation of the age numbers reason. I really liked and I have use this platform before and will continue use it going forward. -**Note: Delete this note and replace the list above with resources that helped you during the challenge. These could come in handy for anyone viewing your solution or for yourself when you look back on this project in the future.** ## Author @@ -110,10 +141,17 @@ Use this section to outline areas that you want to continue focusing on in futur - Frontend Mentor - [@yourusername](https://www.frontendmentor.io/profile/yourusername) - Twitter - [@favour2207](https://www.twitter.com/yourusername) -**Note: Delete this note and add/remove/edit lines above based on what links you'd like to share.** ## Acknowledgments -This is where you can give a hat tip to anyone who helped you out on this project. Perhaps you worked in a team or got some inspiration from someone else's solution. This is the perfect place to give them some credit. +I'm actually proud with myself. This is a project that I did independently (95% by myself). Although I got stuck at a point, I did my very best to resolve the dilemma I was in, I solved up to 80% of the problem by myself then I consulted ChatGPT for corrections on what I did. +This is what ChatGPT corrected me on +```js +else { + const tempDate = new Date(curYear, curMonth - 1, 0) + ; // Get the last day of the previous month + day_total = tempDate.getDate() - (day - curDay); + monthNames(); + document.querySelector(".dash3").innerText = day_total; +``` -**Note: Delete this note and edit this section's content as necessary. If you completed this challenge by yourself, feel free to delete this section entirely.** diff --git a/assets/images/Screenshot (783).png b/assets/images/Screenshot (783).png new file mode 100644 index 0000000000000000000000000000000000000000..995d4fe026c30adabc2dc27400270d580291ea35 GIT binary patch literal 50177 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 literal 0 HcmV?d00001 diff --git a/index.css b/index.css index 441b061..ef96346 100644 --- a/index.css +++ b/index.css @@ -31,6 +31,9 @@ body { .outline>input{ border-color: red; } +.outline { + border-color: red; +} input { width: 6.25rem; height: 2.5rem; @@ -127,38 +130,38 @@ svg { .m-txt { position: absolute; top: 10px; - left: 133px; + left: 7.6875rem; } .y-txt { position: absolute; top: 10px; - left: 244px; + left: 14.0625rem; } -.valid, -.valid1, -.valid2 { +.error-d, +.error-m, +.error-y { font-size: 0.625rem; color: red; } -.valid { +.error-d { position: absolute; top: 66px; left: 18px; } -.valid1 { +.error-m { position: absolute; top: 66px; - left: 132px + left: 7.6875rem } -.valid2 { +.error-y { position: absolute; top: 66px; - left: 245px + left: 14.1875rem; } .input_box { diff --git a/index.html b/index.html index 3108bb6..fb931cc 100644 --- a/index.html +++ b/index.html @@ -20,34 +20,34 @@
Day
Month
Year
-
-
-
+
+
+
- - - + + - +
-

- - - - - - - +

+ + + + + + + + -

-- years
-
-- months
+
-- months
-- days
diff --git a/index.js b/index.js index fdd0382..6d2c229 100644 --- a/index.js +++ b/index.js @@ -2,7 +2,7 @@ const currentDate = new Date(); // Get various components of the date const curYear = currentDate.getFullYear(); -const curMonth = currentDate.getMonth(); // Month is zero-based, so add 1 +const curMonth = currentDate.getMonth() + 1; // Month is zero-based, so add 1 const curDay = currentDate.getDate(); const hours = currentDate.getHours(); const minutes = currentDate.getMinutes(); @@ -14,18 +14,33 @@ console.log( ); const reset = () => { - document.getElementsByClassName("valid")[0].innerText = ""; - document.getElementsByClassName("valid1")[0].innerText = ""; - document.getElementsByClassName("valid2")[0].innerText = ""; + document.getElementsByClassName("error-d")[0].innerText = ""; + document.getElementsByClassName("error-m")[0].innerText = ""; + document.getElementsByClassName("error-y")[0].innerText = ""; }; function calculateAge() { - // Clear previous results + const monthNames = () => { + // a shorthand for if ((month == 4 || month == 6 || month == 9 || month == 11) && day > 30 + if ([4, 6, 9, 11].includes(month)) { + day_total++; + month_total--; + } else if ([1, 3, 5, 7, 8, 10, 12].includes(month)) { + day_total += 2; + month_total--; + } else { + console.log(6); + } + }; + document.getElementsByClassName("error")[0].innerText = ""; + //3 Clear previous results document.getElementById("result").innerText = ""; + document.querySelectorAll(".input_box input").forEach((in_out) => { + in_out.classList.remove("outline"); + // Trigger reflow to ensure the animation class is removed + void in_out.offsetWidth; + }); - document.querySelector(".dash1"); - document.querySelector(".dash2"); - document.querySelector(".dash3"); //remove class document.querySelectorAll(".agecalc span").forEach((span) => { span.classList.remove("animate"); @@ -37,7 +52,10 @@ function calculateAge() { document.querySelector(".dash2").classList.add("animate"); document.querySelector(".dash3").classList.add("animate"); - out=document.querySelector(".input_box") + outLine = document.querySelector(".input_box"); + input1 = document.querySelector(".in1"); + input2 = document.querySelector(".in2"); + input3 = document.querySelector(".in3"); // Get input values const day = parseInt(document.getElementById("day").value); @@ -51,65 +69,133 @@ function calculateAge() { return; } - if ((month == 4 || month == 6 || month == 9 || month == 11) && day > 30) { + if ([4, 6, 9, 11].includes(month) && day > 30) { reset(); document.getElementsByClassName("error")[0].innerText = "This month does not have more than 30days"; return; } - - // Check for valid input + if (day <= 0) { + input1.classList.add("outline"); + document.getElementsByClassName("error-d")[0].innerText = + "Enter a valid day"; + return; + } + outLine.classList.remove("outline"); + // Check for error-d input if (isNaN(day) || isNaN(month) || isNaN(year)) { - document.getElementsByClassName("valid")[0].innerText = "Enter a day"; - document.getElementsByClassName("valid1")[0].innerText = "Enter a month"; - document.getElementsByClassName("valid2")[0].innerText = "Enter a year"; - out.classList.add("outline"); + document.getElementsByClassName("error-d")[0].innerText = "Enter a day"; + document.getElementsByClassName("error-m")[0].innerText = "Enter a month"; + document.getElementsByClassName("error-y")[0].innerText = "Enter a year"; + outLine.classList.add("outline"); return; } else { reset(); } if (day > 31 || month > 12 || year > curYear) { - if (day > 31 || day > curDay) { - document.getElementsByClassName("valid")[0].innerText = + + if (year > curYear && day > 31 && month > 12) { + document.getElementsByClassName("error-d")[0].innerText = + "Must be a valid day"; + document.getElementsByClassName("error-m")[0].innerText = + "Must be a valid month"; + document.getElementsByClassName("error-y")[0].innerText = + "Must be a valid year"; + input3.classList.add("outline"); + input1.classList.add("outline"); + input2.classList.add("outline"); + + return; + } else if (day > 31 && month > 12) { + input3.classList.remove("outline"); + document.getElementsByClassName("error-d")[0].innerText = + "Must be a valid day"; + input1.classList.add("outline"); + document.getElementsByClassName("error-m")[0].innerText = + "Must be a valid month"; + input2.classList.add("outline"); + return; + } else if (year > curYear && month > 12) { + input1.classList.remove("outline"); + document.getElementsByClassName("error-m")[0].innerText = + "Must be a valid month"; + input2.classList.add("outline"); + document.getElementsByClassName("error-y")[0].innerText = + "Must be a valid year"; + input3.classList.add("outline"); + return; + } else if (year > curYear && day > 31) { + input2.classList.remove("outline"); + document.getElementsByClassName("error-d")[0].innerText = + "Must be a valid day"; + input1.classList.add("outline"); + document.getElementsByClassName("error-y")[0].innerText = + "Must be a valid year"; + input3.classList.add("outline"); + return; + } else { + document.getElementsByClassName("error-d")[0].innerText = ""; + } + if (day > 31) { + document.getElementsByClassName("error-d")[0].innerText = "Must be a valid day"; - out.classList.add("outline"); + input1.classList.add("outline"); + return; } else { - document.getElementsByClassName("valid")[0].innerText = ""; + document.getElementsByClassName("error-d")[0].innerText = ""; } - if (month > 12 || month > curMonth) { - document.getElementsByClassName("valid1")[0].innerText = + if (month > 12) { + document.getElementsByClassName("error-m")[0].innerText = "Must be a valid month"; - out.classList.add("outline"); + input2.classList.add("outline"); + return; } else { - document.getElementsByClassName("valid1")[0].innerText = ""; + document.getElementsByClassName("error-m")[0].innerText = ""; } if (year > curYear) { - document.getElementsByClassName("valid2")[0].innerText = + document.getElementsByClassName("error-y")[0].innerText = "Must be a valid year"; - out.classList.add("outline"); + input3.classList.add("outline"); + return; } else { - document.getElementsByClassName("valid2")[0].innerText = ""; + document.getElementsByClassName("error-y")[0].innerText = ""; } } - if (day <= curDay || month <= 12 || year <= curYear) { - year_total = curYear - year; - year_total--; + let year_total, month_total, day_total; + if (curMonth > month) { + year_total = curYear - year; document.querySelector(".dash1").innerText = year_total; + } else { + year_total = curYear - year - 1; + document.querySelector(".dash1").innerText = year_total; + } - if (month <= curMonth) { - month_total = curMonth - month; - document.querySelector(".dash2").innerText = month_total; - } else { - month_total = 12 - Math.abs(month - curMonth); - document.querySelector(".dash2").innerText = month_total; - } - if (curDay > day) { - document.querySelector(".dash3").innerText = Math.abs(curDay - day); - month_total += 1; - document.querySelector(".dash2").innerText = month_total; - } else { - document.querySelector(".dash3").innerText = 31 - Math.abs(curDay - day); - } + if (month <= curMonth) { + month_total = curMonth - month; + monthNames(); + document.querySelector(".dash2").innerText = month_total + 1; + } else { + month_total = 12 - (month - curMonth); + monthNames(); + document.querySelector(".dash2").innerText = month_total; + } + + if (curDay >= day) { + day_total = curDay - day; + monthNames(); + document.querySelector(".dash3").innerText = day_total; + } else { + const tempDate = new Date(curYear, curMonth - 1, 0); // Get the last day of the previous month + day_total = tempDate.getDate() - (day - curDay); + monthNames(); + document.querySelector(".dash3").innerText = day_total; } } +const tempDate = new Date(curYear, curMonth - 1, 0); // Get the last day of the previous month +console.log(tempDate); +document.addEventListener("keydown", (event) => { + if (event.key === "Enter") { + calculateAge(); + } +});