🌐
50 React Coding Puzzles
  • 50 React Coding Puzzles
  • Contact
  • Reviews
  • Table of Contents
  • Introduction
  • 1 - Simple Counter App
  • 2 - Dynamic List of Items with Strikethrough
  • 3 - Color Picker with Hex Code Display
  • 4 - Password Strength Checker
  • 5 - Countdown Timer with Audio
  • 6 - Dynamic Movie List with Filtering and Sorting
  • 7 - Text Animation Component (Fade/Scroll)
  • 8 - Dynamically Generated Text Art
  • 9 - Meme Generator with Custom Text
  • 10 - "What Should I Eat?" Random Recipe Generator
  • 11 - Simple Quiz App with Multiple Choice
  • 12 - Unit Converter
  • 13 - Dynamic Image Gallery with Lightbox
  • 14 - Weather Widget with Temperature and Description
  • 15 - Contact Form with Email and Message Validation
  • 16 - Color Palette Generator
  • 17 - Drag-and-Drop Feature for Rearranging Items
  • 18 - Interactive Quiz with Dynamic Results and Feedback
  • 19 - To-Do List with Task Categorization
  • 20 - Note-Taking App with Markdown Support
  • 21 - Simple Calculator with Basic Operations
  • 22 - Word Scramble Game with Timer and Score
  • 23 - Number Guessing Game
  • 24 - Digital Clock with Time Zone Support
  • 25 - Interactive Time Zone Converter
  • 26 - Weather Forecast App with Location Detection
  • 27 - Real-Time Stock Ticker with Updates
  • 28 - Virtual Dice Roller with Multiple Dice
  • 29 - Responsive Navigation Menu with Dropdowns
  • 30 - Progress Bar for Loading or Task Completion
  • 31 - Modal Window for Alerts and Confirmations
  • 32 - Infinite Scroll for Loading More Content
  • 33 - Form Validation with Error Messages
  • 34 - Search Bar with Filtering and Suggestions
  • 35 - Drag-and-Drop File Upload
  • 36 - Interactive Color Picker with Sliders
  • 37 - Image Carousel with Autoplay
  • 38 - Rating System with Stars or Thumbs Up/Down
  • 39 - Comment Section with Nested Replies
  • 40 - Pagination for Long Lists of Data
  • 41 - Stopwatch app that tracks elapsed time
  • 42 - Responsive E-commerce Product Grid
  • 43 - Random Movie/Book Recommender
  • 44 - Kanban board for managing tasks with drag-and-drop
  • 45 - Chat application with real-time messaging using WebSockets
  • 46 - Calendar that displays events and allows scheduling
  • 47 - Tic-Tac-Toe Game
  • 48 - Hangman Game
  • 49 - Notes App
  • 50 - Expense Tracker
  • Afterword
  • Appendix
Powered by GitBook
On this page
  • Description
  • Algorithm
  • Classes
  • Code
  • Explanation
  • Additional Notes

24 - Digital Clock with Time Zone Support

Description

Create a React application that displays a digital clock with time zone support. The clock should display the current time in the user's local time zone by default, allow users to select different time zones from a list or dropdown menu, and update the displayed time dynamically based on the chosen time zone.

Algorithm

  1. Create a state variable to store the current time and selected time zone.

  2. Define a function to get the current time in the user's local time zone.

  3. Define a function to handle time zone selection.

  4. Define a function to update the displayed time based on the selected time zone.

  5. Render the digital clock and time zone selection menu.

Classes

  • DigitalClock: A component that represents the digital clock.

  • TimeZoneMenu: A component that represents the time zone selection menu.

Code

DigitalClock.js

import React, { useState, useEffect } from 'react';
import TimeZoneMenu from './TimeZoneMenu';

function DigitalClock() {
  const [currentTime, setCurrentTime] = useState(getCurrentTime());
  const [selectedTimeZone, setSelectedTimeZone] = useState('Local');

  useEffect(() => {
    const intervalId = setInterval(() => {
      setCurrentTime(getCurrentTime(selectedTimeZone));
    }, 1000);
    return () => clearInterval(intervalId);
  }, [selectedTimeZone]);

  const handleTimeZoneSelect = (timeZone) => {
    setSelectedTimeZone(timeZone);
  };

  return (
    <div>
      <h2>Digital Clock</h2>
      <p>{currentTime}</p>
      <TimeZoneMenu onTimeZoneSelect={handleTimeZoneSelect} />
    </div>
  );
}

export default DigitalClock;

TimeZoneMenu.js

import React from 'react';

function TimeZoneMenu({ onTimeZoneSelect }) {
  const timeZones = [
    { name: 'Local', offset: 0 },
    { name: 'UTC', offset: 0 },
    { name: 'EST', offset: -5 },
    { name: 'CST', offset: -6 },
    { name: 'MST', offset: -7 },
    { name: 'PST', offset: -8 },
  ];

  const handleSelect = (timeZone) => {
    onTimeZoneSelect(timeZone.name);
  };

  return (
    <select onChange={(event) => handleSelect(timeZones[event.target.value])}>
      {timeZones.map((timeZone, index) => (
        <option value={index}>{timeZone.name}</option>
      ))}
    </select>
  );
}

export default TimeZoneMenu;

Explanation

The DigitalClock component renders the digital clock and time zone selection menu. The TimeZoneMenu component represents the time zone selection menu. The getCurrentTime function gets the current time in the user's local time zone. The handleTimeZoneSelect function handles time zone selection. The updateDisplayedTime function updates the displayed time based on the selected time zone.

Additional Notes

  • Implement the fetchTimeZones logic using a library or API for time zone data.

  • Consider using a dedicated time zone library for robust time zone handling.

  • Explore methods for automatic time zone detection based on user location.

  • Design visually appealing clock styles and themes.

  • Validate user-entered time zones to ensure they are valid.

Previous23 - Number Guessing GameNext25 - Interactive Time Zone Converter

Last updated 10 months ago