Partage
  • Partager sur Facebook
  • Partager sur Twitter

Compte à rebours de jours

S. Ô. S

    21 octobre 2022 à 23:02:17

    Bonjour à vous aînés.

    Aidez-moi s'il vous plaît. J'aimerais coder un compte à rebours de jours comme pour l'abonnement chez canal +, donc le programme va compter en rentrant en arrière jusqu'à 0 pour épuiser l'abonnement mais la validité sera stocké dans la base de données mysql et si le compteur devient 0 directement la valeur qui était entrée dans la base de données mysql puisse se réinitialiser à 0 et que le programme puisse afficher fin abonnement dans le Jtable (dans le tableau). Merci d'avance pour votre aide.

    • Partager sur Facebook
    • Partager sur Twitter
      25 octobre 2022 à 16:26:38

      date finale (celle enregistrée en BdD) - date actuelle (récupérée par rapport au client) et tu as ton écart de date, je ne vois pas la difficulté, et quand tu atteints 0, tu fais ce que tu veux, mais si tu mets zéro, il faudra faire le test avant de faire la soustraction
      • Partager sur Facebook
      • Partager sur Twitter
        31 décembre 2022 à 16:47:20

        Voici comment vous pouvez implémenter un compte à rebours de jours en Java en utilisant une base de données MySQL :

        1. Tout d'abord, vous devez créer une table dans votre base de données MySQL pour stocker les informations sur l'abonnement, telles que la date de début et la durée de l'abonnement. Assurez-vous de définir une colonne pour stocker la date de fin de l'abonnement, qui sera calculée en ajoutant la durée de l'abonnement à la date de début.

        2. Ensuite, vous devez écrire du code Java pour se connecter à votre base de données MySQL et exécuter une requête SQL pour récupérer les informations sur l'abonnement en cours. Vous pouvez utiliser la bibliothèque JDBC (Java Database Connectivity) pour ce faire.

        3. Une fois que vous avez récupéré les informations sur l'abonnement en cours, vous pouvez utiliser la classe java.util.Timer pour créer un timer qui s'exécutera toutes les 24 heures (ou toute autre intervalle de temps souhaité). Dans le gestionnaire d'événements du timer, vous pouvez exécuter une requête SQL pour mettre à jour la date de fin de l'abonnement en soustractant un jour à la date actuelle.

        4. Vous pouvez également utiliser la classe java.util.Timer pour afficher le nombre de jours restants dans le JTable. Dans le gestionnaire d'événements du timer, vous pouvez calculer le nombre de jours restants en comparant la date de fin de l'abonnement à la date actuelle et en utilisant la méthode setValueAt de la classe javax.swing.JTable pour mettre à jour la valeur dans le JTable.

        5. Enfin, vous pouvez ajouter du code pour vérifier si la date de fin de l'abonnement est égale à 0 et afficher un message indiquant que l'abonnement est terminé. Vous pouvez également mettre à jour la valeur dans la base de données MySQL pour réinitialiser la date de fin de l'abonnement à 0.

        Voici un exemple de code qui montre comment mettre en place un compte à rebours de jours en utilisant une base de données MySQL et une JTable en Java :

        import java.sql.*;
        import java.util.Timer;
        import java.util.TimerTask;
        import javax.swing.JTable;
        
        public class CountdownTimer {
          // Déclarez les variables nécessaires, telles que la connexion à la base de données et le JTable
          private Connection conn;
          private JTable table;
        
          public CountdownTimer(Connection conn, JTable table) {
          this.conn = conn;
          this.table = table;
        }
        
        public void start() {
          Timer timer = new Timer();
          TimerTask task = new TimerTask() {
            public void run() {
              // Exécutez une requête SQL pour récupérer les informations sur l'abonnement en cours
              try {
                Statement stmt = conn.createStatement();
                ResultSet rs = stmt.executeQuery("SELECT * FROM subscriptions WHERE end_date > CURDATE()");
                if (rs.next()) {
                  // Récupérez la date de fin de l'abonnement et le nombre de jours restants
                  Date endDate = rs.getDate("end_date");
                  long daysLeft = (endDate.getTime() - System.currentTimeMillis()) / (24 * 60 * 60 * 1000);
                  // Mettez à jour la valeur dans le JTable
                  table.setValueAt(daysLeft, 0, 1);
                  // Vérifiez si la date de fin de l'abonnement est égale à 0
                  if (daysLeft == 0) {
                    // Affichez un message indiquant que l'abonnement est terminé
                    System.out.println("Abonnement terminé");
                    // Réinitialisez la date de fin de l'abonnement à 0 dans la base de données MySQL
                    stmt.executeUpdate("UPDATE subscriptions SET end_date = 0 WHERE end_date > CURDATE()");
                  }
                }
              } catch (SQLException e) {
                e.printStackTrace();
              }
            }
          };
          // Exécutez le timer toutes les 24 heures
          timer.scheduleAtFixedRate(task, 0, 24 * 60 * 60 * 1000);
        }
        
        

        Ce code crée un timer qui s'exécute toutes les 24 heures et qui récupère les informations sur l'abonnement en cours à partir de la base de données MySQL. Il met à jour la valeur dans le JTable avec le nombre de jours restants et vérifie si la date de fin de l'abonnement est égale à 0. Si c'est le cas, il affiche un message indiquant que l'abonnement est terminé et réinitialise la date de fin de l'abonnement à 0 dans la base de données MySQL.

        • Partager sur Facebook
        • Partager sur Twitter

        Compte à rebours de jours

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown