Générateur de dates aléatoires pour la planification et les tests
Créez des dates aléatoires valides dans une plage inclusive pour les planifications, les simulations et les tests, avec gestion des années bissextiles et sortie ISO.
Une date aléatoire est utile pour les exemples de calendriers, les événements de jeu, les simulations et les tests de logiciels. La méthode fiable ne consiste pas à générer indépendamment un mois, un jour et une année ; il s'agit de choisir un décalage aléatoire dans une plage de dates valide.
Points clés à retenir
- Définissez les dates au plus tôt et au plus tard avant de générer quoi que ce soit.
- Convertissez la plage en nombre de jours et choisissez un décalage de jour aléatoire.
- Utilisez l'arithmétique des dates plutôt que d'inventer un numéro de jour pour chaque mois.
- Décidez si les points de terminaison sont inclus et si une heure de la journée est importante.
- Enregistrez le fuseau horaire et le format de date pour des résultats reproductibles.
Pourquoi les valeurs indépendantes du mois, du jour et de l'année échouent
Les mois ont des durées différentes et février change en années bissextiles. Choisir un jour entre 1 et 31 pour chaque mois peut produire des résultats invalides tels que le 31 avril ou le 29 février d'une année commune. Cela donne également aux mois avec moins de jours une probabilité effective différente.
Choisir une année, puis un mois, puis un jour valide peut fonctionner, mais cela nécessite des règles supplémentaires et peut toujours ne pas donner à chaque jour calendaire la probabilité souhaitée. Une méthode de décalage journalier est plus simple et plus transparente.
Générez une date avec le générateur de dates aléatoires
Ouvrez le générateur de date aléatoire et suivez ces étapes :
- Choisissez une date de début et une date de fin.
- Définissez le nombre de résultats et activez Aucun doublon si nécessaire.
- Choisissez le tri chronologique lorsque la sortie doit être ordonnée.
- Générez les dates et copiez les valeurs ISO.
- Enregistrez la plage et les paramètres avec tout scénario de test que vous devez reproduire.
En interne, l'outil calcule le nombre de jours entre les points finaux, sélectionne un décalage uniforme et l'ajoute au début à l'aide de l'arithmétique de date UTC uniquement.
Par exemple, une plage d'un jour contenant uniquement le 1er janvier a un décalage possible : 0. Une plage allant du 1er janvier au 31 janvier a 31 décalages possibles, de 0 à 30.
Le générateur s'exécute localement et utilise la source aléatoire cryptographique du navigateur pour chaque décalage. Il vérifie également que le nombre unique demandé correspond à la plage sélectionnée.
Points de terminaison inclusifs et exclusifs
Une plage inclusive comprend à la fois les dates de début et de fin. Une plage de fin exclusive inclut le début mais s'arrête avant la fin. Les erreurs ponctuelles sont courantes ici, alors écrivez la règle à côté du test ou de l'activité.
Pour une année complète du 1er janvier au 31 décembre inclus, le dernier jour doit être un résultat possible. Si vous utilisez plutôt le 1er janvier de l’année suivante comme point final exclusif, calculez le décalage par rapport à cette limite.
Années bissextiles et arithmétique calendaire
Les années bissextiles sont gérées correctement lorsque vous ajoutez des jours avec un outil prenant en charge le calendrier. Ne présumez pas que chaque année compte 365 jours ou que chaque quatrième année est bissextile dans tout système de calendrier. Pour la plupart des applications métiers modernes, le calendrier grégorien proleptique et une bibliothèque de dates standard suffisent.
Les dates historiques nécessitent une attention particulière car les calendriers et les dates d'adoption régionales diffèrent. Si le résultat a une signification juridique, scientifique ou historique, documentez le système de calendrier ainsi que le fuseau horaire.
Fuseaux horaires et heures de la journée
Une date de calendrier n’est pas la même chose qu’un horodatage ; la référence de date MDN explique le modèle JavaScript sous-jacent. Une valeur de date uniquement telle que 2027-03-08 n'a pas besoin de changer lorsqu'elle est affichée depuis un autre fuseau horaire. Le convertir via un horodatage local à minuit peut accidentellement le déplacer au jour précédent ou suivant.
Pour les résultats de date uniquement, conservez le calcul dans un type de date uniquement ou utilisez une convention UTC cohérente. Si vous avez également besoin d'une heure aléatoire, définissez le fuseau horaire, générez des secondes ou des minutes dans l'intervalle autorisé et tenez compte des transitions vers l'heure d'été.
Planification, simulations et tests
Utilisez des dates aléatoires pour créer des jalons de projet fictifs, des calendriers d'entraînement aléatoires, des exemples de transactions ou des cas de test proches des limites du mois et de l'année. Incluez également les cas extrêmes délibérés : le 29 février, les fins de mois, les changements d'heure d'été et les dates minimales et maximales.
Les tests aléatoires devraient compléter les exemples déterministes. Enregistrez le décalage, la plage et le fuseau horaire générés avec tout test ayant échoué afin qu'ils puissent être reproduits.
Conclusion
Générez une date aléatoire en sélectionnant un décalage de jour uniforme dans une plage clairement définie. Laissez l’arithmétique basée sur le calendrier gérer la durée des mois et les années bissextiles, et séparez les valeurs de date uniquement des horodatages. Les points de terminaison, formats et fuseaux horaires explicites empêchent la plupart des bogues de date aléatoire.
Essayez l'outil
Générateur de dates aléatoires
Générez des dates aléatoires valides.