Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

164
Vistas
How to set a specific number of breaks and sessions in a pomodoro timer

I have created a simple Pomodoro clock. I have the sessions and breaks working correctly. Currently the timer continuously goes from session to break. I would like to incorporate something to count the number of sessions and breaks instead of letting the timer run continuously.I'm not sure how to write the code to complete this action. Below is the JS code that I have currently.

// variables//

var minutes = 24;
var sessionTime = 24;
var seconds = 59;
var currentCycle = 'session'; //start clock in session mode//
var breakTime = 5; //5 mins in each break//

//function that resets minutes and seconds to declared variable//
function setMinsAndSecs() {
  document.getElementById('minutes').innerHTML = minutes;
  document.getElementById('seconds').innerHTML = seconds;
}

//What happens when the update button is clicked//
function setData() {
  //value inputed in the focus time decreased by 1//
  var tempMins = document.getElementById('focusTime').value - 1;

  // if mins go below 0, output should be 0, if not go back to tempMins and decrease by 1//
  minutes = tempMins < 0 ? 0 : tempMins;
  sessionTime = minutes;
  var tempBreakTime = document.getElementById('breakTime').value - 1;
  breakTime = tempBreakTime < 0 ? 0 : tempBreakTime;
  document.getElementById('minutes').innerHTML = minutes;
}
//function for restart button//
function restart() {
  minutes = sessionTime;
  seconds = 59;
  setMinsAndSecs();
}
//function for start button//
function start() {
  setMinsAndSecs();

  var minutes_interval = setInterval(minutesTimer, 60000);
  var seconds_interval = setInterval(secondsTimer, 1000);

  function minutesTimer() {
    minutes = minutes - 1 < 0 ? 0 : minutes - 1;
    document.getElementById('minutes').innerHTML = minutes;
  }
  function secondsTimer() {
    seconds = seconds - 1;
    document.getElementById('seconds').innerHTML = seconds;

    if (seconds <= 0) {
      if (minutes <= 0) {
        if (currentCycle === 'session') {
          // clearInterval(minutes_interval);
          // clearInterval(seconds_interval);
          //if current cycle is in session, when time runs out cycle must change to break//
          currentCycle = 'break';
          //toggle break time countdown//
          minutes = breakTime;
          seconds = 59;
          setMinsAndSecs();

          document.getElementById('done').innerHTML =
            'Session Completed!! 😌 Take a Break 😌 !!';

          document.getElementById('done').classList.add('show_message');
        } else {
          currentCycle = 'session';
          minutes = sessionTime;
          seconds = 59;
          setMinsAndSecs();
          document.getElementById('done').innerHTML =
            'Break Time Over! 🤓 Focus Time!🤓 ';

          document.getElementById('done').classList.add('show_message');
        }
      }
      seconds = 60;
    }
  }
}

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda