"Updates"

This commit is contained in:
julien committed 2025-12-30 10:56:57 +01:00
1 parent 633a73efc4
commit 706e4c72f5
5 files changed
+121

No files matched your search

+65
View File
@@ -0,0 +1,65 @@
Calendar using JavaScript
========================
> ## Excerpt
> We will Create a calendar using HTML, CSS, and JavaScript that displays the current month and year, and allows the user to navigate to previous and next months. Also, it allows the user to jump to a specific month and year. The calendar should also highlight the current date.Prerequisites: HTMLCSSJavaScript The
---
# How to Design a Simple Calendar using JavaScript ?
Last Updated : 25 Sep, 2024
Summarize
Comments
Improve
Suggest changes
13 Likes
Like
Save
Share
Report
[![News](How%20to%20Design%20a%20Simple%20Calendar%20using%20JavaScript%20-%20GeeksforGeeks/Google-news.svg) Follow](https://news.google.com/publications/CAAqBwgKMLTrzwsw44bnAw?hl=en-IN&gl=IN&ceid=IN%3Aen)
We will Create a calendar using HTML, CSS, and JavaScript that displays the current month and year, and allows the user to navigate to previous and next months. Also, it allows the user to jump to a specific month and year. The calendar should also highlight the current date.
### ****Prerequisites:****
- [HTML](https://www.geeksforgeeks.org/html/)
- [CSS](https://www.geeksforgeeks.org/css/)
- [JavaScript](https://www.geeksforgeeks.org/javascript/)
The task at hand is to create a webpage that displays a calendar. The calendar should have the functionality to navigate to the previous and next months. The calendar should also be able to display the current date in a different color.
## ****Approach:****
- Create an HTML structure for the calendar using a table and appropriate list elements.
- Create JavaScript variables to keep track of the current month and year, as well as elements to display the current month and year on the page.
- Use JavaScript to create a function to display the current month’s calendar. This function should take in the current month and year as arguments and use them to determine the number of days in the current month, and the first day of the month, and fill in the appropriate number of days in the calendar.
- Create JavaScript functions to navigate to the next and previous months.
- Use JavaScript to add event listeners to the appropriate elements (next and previous buttons) to call the appropriate navigation functions when clicked.
****Implementation:**** Below is the implementation of the above approach:
- ****index.html:**** This file contains the skeleton of calendar
- ****styles.css:**** This file contains CSS to improve the look of the calendar
- ****script.js:**** This file contains the code to make the calendar dynamic
****Example:**** Here is the implementation of the above-explained steps.
HTML` ``` <span></span><span class="cp">&lt;!DOCTYPE html&gt;</span> <span class="p">&lt;</span><span class="nt">html</span> <span class="na">lang</span><span class="o">=</span><span class="s">"en"</span> <span class="na">dir</span><span class="o">=</span><span class="s">"ltr"</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">head</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">meta</span> <span class="na">charset</span><span class="o">=</span><span class="s">"utf-8"</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">title</span><span class="p">&gt;</span>Calendar<span class="p">&lt;/</span><span class="nt">title</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">meta</span> <span class="na">name</span><span class="o">=</span><span class="s">"viewport"</span> <span class="na">content</span><span class="o">=</span><span class="s">"width=device-width, initial-scale=1.0"</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">link</span> <span class="na">rel</span><span class="o">=</span><span class="s">"stylesheet"</span> <span class="na">href</span><span class="o">=</span><span class="s">"styles.css"</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">link</span> <span class="na">rel</span><span class="o">=</span><span class="s">"stylesheet"</span> <span class="na">href</span><span class="o">=</span> <span class="s">"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200"</span><span class="p">&gt;</span> <span class="p">&lt;/</span><span class="nt">head</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">body</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">div</span> <span class="na">class</span><span class="o">=</span><span class="s">"calendar-container"</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">header</span> <span class="na">class</span><span class="o">=</span><span class="s">"calendar-header"</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">p</span> <span class="na">class</span><span class="o">=</span><span class="s">"calendar-current-date"</span><span class="p">&gt;&lt;/</span><span class="nt">p</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">div</span> <span class="na">class</span><span class="o">=</span><span class="s">"calendar-navigation"</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">span</span> <span class="na">id</span><span class="o">=</span><span class="s">"calendar-prev"</span> <span class="na">class</span><span class="o">=</span><span class="s">"material-symbols-rounded"</span><span class="p">&gt;</span> chevron_left <span class="p">&lt;/</span><span class="nt">span</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">span</span> <span class="na">id</span><span class="o">=</span><span class="s">"calendar-next"</span> <span class="na">class</span><span class="o">=</span><span class="s">"material-symbols-rounded"</span><span class="p">&gt;</span> chevron_right <span class="p">&lt;/</span><span class="nt">span</span><span class="p">&gt;</span> <span class="p">&lt;/</span><span class="nt">div</span><span class="p">&gt;</span> <span class="p">&lt;/</span><span class="nt">header</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">div</span> <span class="na">class</span><span class="o">=</span><span class="s">"calendar-body"</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">ul</span> <span class="na">class</span><span class="o">=</span><span class="s">"calendar-weekdays"</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">li</span><span class="p">&gt;</span>Sun<span class="p">&lt;/</span><span class="nt">li</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">li</span><span class="p">&gt;</span>Mon<span class="p">&lt;/</span><span class="nt">li</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">li</span><span class="p">&gt;</span>Tue<span class="p">&lt;/</span><span class="nt">li</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">li</span><span class="p">&gt;</span>Wed<span class="p">&lt;/</span><span class="nt">li</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">li</span><span class="p">&gt;</span>Thu<span class="p">&lt;/</span><span clLine truncated
CSS` ``` <span></span><span class="o">*</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">margin</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="k">padding</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="k">font-family</span><span class="p">:</span><span class="w"> </span><span class="s1">'Poppins'</span><span class="p">,</span><span class="w"> </span><span class="kc">sans-serif</span><span class="p">;</span> <span class="p">}</span> <span class="nt">body</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">display</span><span class="p">:</span><span class="w"> </span><span class="kc">flex</span><span class="p">;</span> <span class="w"> </span><span class="k">background</span><span class="p">:</span><span class="w"> </span><span class="mh">#ef62da</span><span class="p">;</span> <span class="w"> </span><span class="k">min-height</span><span class="p">:</span><span class="w"> </span><span class="mi">100</span><span class="kt">vh</span><span class="p">;</span> <span class="w"> </span><span class="k">padding</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="mi">10</span><span class="kt">px</span><span class="p">;</span> <span class="w"> </span><span class="k">align-items</span><span class="p">:</span><span class="w"> </span><span class="kc">center</span><span class="p">;</span> <span class="w"> </span><span class="k">justify-content</span><span class="p">:</span><span class="w"> </span><span class="kc">center</span><span class="p">;</span> <span class="p">}</span> <span class="p">.</span><span class="nc">calendar-container</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">background</span><span class="p">:</span><span class="w"> </span><span class="mh">#fff</span><span class="p">;</span> <span class="w"> </span><span class="k">width</span><span class="p">:</span><span class="w"> </span><span class="mi">450</span><span class="kt">px</span><span class="p">;</span> <span class="w"> </span><span class="k">border-radius</span><span class="p">:</span><span class="w"> </span><span class="mi">10</span><span class="kt">px</span><span class="p">;</span> <span class="w"> </span><span class="k">box-shadow</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="mi">15</span><span class="kt">px</span><span class="w"> </span><span class="mi">40</span><span class="kt">px</span><span class="w"> </span><span class="nb">rgba</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mf">0.12</span><span class="p">);</span> <span class="p">}</span> <span class="p">.</span><span class="nc">calendar-container</span><span class="w"> </span><span class="nt">header</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">display</span><span class="p">:</span><span class="w"> </span><span class="kc">flex</span><span class="p">;</span> <span class="w"> </span><span class="k">align-items</span><span class="p">:</span><span class="w"> </span><span class="kc">center</span><span class="p">;</span> <span class="w"> </span><span class="k">padding</span><span class="p">:</span><span class="w"> </span><span class="mi">25</span><span class="kt">px</span><span class="w"> </span><span class="mi">30</span><span class="kt">px</span><span class="w"> </span><span class="mi">10</span><span class="kt">px</span><span class="p">;</span> <span class="w"> </span><span class="k">justify-content</span><span class="p">:</span><span class="w"> </span><span class="kc">space-between</span><span class="p">;</span> <span class="p">}</span> <span class="nt">header</span><span class="w"> </span><span class="p">.</span><span class="nc">calendar-navigation</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">display</span><span class="p">:</span><span class="w"> </span><span class="kc">flex</span><span class="p">;</span> <span class="p">}</span> <span class="nt">header</span><span class="w"> </span><span class="p">.</span><span class="nc">calendar-navigation</span><span class="w"> </span><span class="nt">span</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">height</span><span class="p">:</span><span class="w"> </span><span class="mi">38</span><span class="kt">px</span><span class="p">;</span> <span class="w"> </span><span class="k">width</span><spLine truncated
JavaScript`` ``` <span></span><span class="kd">let</span><span class="w"> </span><span class="nx">date</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nb">Date</span><span class="p">();</span> <span class="kd">let</span><span class="w"> </span><span class="nx">year</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">date</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">();</span> <span class="kd">let</span><span class="w"> </span><span class="nx">month</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">date</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">();</span> <span class="kd">const</span><span class="w"> </span><span class="nx">day</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">document</span><span class="p">.</span><span class="nx">querySelector</span><span class="p">(</span><span class="s2">".calendar-dates"</span><span class="p">);</span> <span class="kd">const</span><span class="w"> </span><span class="nx">currdate</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">document</span> <span class="w"> </span><span class="p">.</span><span class="nx">querySelector</span><span class="p">(</span><span class="s2">".calendar-current-date"</span><span class="p">);</span> <span class="kd">const</span><span class="w"> </span><span class="nx">prenexIcons</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">document</span> <span class="w"> </span><span class="p">.</span><span class="nx">querySelectorAll</span><span class="p">(</span><span class="s2">".calendar-navigation span"</span><span class="p">);</span> <span class="c1">// Array of month names</span> <span class="kd">const</span><span class="w"> </span><span class="nx">months</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span> <span class="w"> </span><span class="s2">"January"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"February"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"March"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"April"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"May"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"June"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"July"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"August"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"September"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"October"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"November"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"December"</span> <span class="p">];</span> <span class="c1">// Function to generate the calendar</span> <span class="kd">const</span><span class="w"> </span><span class="nx">manipulate</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">()</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="c1">// Get the first day of the month</span> <span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">dayone</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nb">Date</span><span class="p">(</span><span class="nx">year</span><span class="p">,</span><span class="w"> </span><span class="nx">month</span><span class="p">,</span><span class="w"> </span><span class="mf">1</span><span class="p">).</span><span class="nx">getDay</span><span class="p">();</span> <span class="w"> </span><span class="c1">// Get the last date of the month</span> <span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">lastdate</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nb">Date</span><span class="p">(</span><span class="nx">year</span><span class="p">,</span><span class="w"> </span><span class="nx">month</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">,</span><span class="w"> </span><span class="mf">0</span><span class="p">).</span><span class="nx">getDate</span><span class="p">();</span> <span class="w"> </span><span class="c1">// Get the day of the last date of the month</span> <span class="w"> </span><span class="kLine truncated
****Output:****
![a1](How%20to%20Design%20a%20Simple%20Calendar%20using%20JavaScript%20-%20GeeksforGeeks/a1.gif)
How to Design a Simple Calendar using JavaScript?