Guias 4 min de leitura

Gerador de datas aleatórias para planejamento e testes

Crie datas aleatórias válidas dentro de um intervalo inclusivo para cronogramas, simulações e testes, com tratamento de anos bissextos e saída ISO.

Uma data aleatória é útil para amostras de cronogramas, eventos de jogos, simulações e testes de software. O método confiável não é gerar mês, dia e ano de forma independente; é escolher um deslocamento aleatório dentro de um intervalo de datas válido.

Principais conclusões

  • Defina as datas mais antigas e mais recentes antes de gerar qualquer coisa.
  • Converta o intervalo para um número de dias e escolha um deslocamento de dia aleatório.
  • Use aritmética de datas em vez de inventar um número de dia para cada mês.
  • Decida se os endpoints estão incluídos e se a hora do dia é importante.
  • Registre o fuso horário e o formato da data para obter resultados reproduzíveis.

Por que os valores independentes de mês, dia e ano falham

Anúncio
Pré-visualização do posicionamento do anúncio

Os meses têm durações diferentes e fevereiro muda em anos bissextos. Escolher um dia de 1 a 31 para cada mês pode produzir resultados inválidos, como 31 de abril ou 29 de fevereiro em um ano comum. Também dá aos meses com menos dias uma probabilidade efetiva diferente.

Escolher um ano, depois um mês e depois um dia válido pode ser feito para funcionar, mas isso requer regras adicionais e ainda pode não fornecer a cada dia do calendário a probabilidade pretendida. Um método de compensação diária é mais simples e transparente.

Gere uma data com o gerador de data aleatória

Abra o gerador de data aleatória e siga estas etapas:

  1. Escolha uma data de início e uma data de término.
  2. Defina o número de resultados e ative Sem duplicatas, se necessário.
  3. Escolha a classificação cronológica quando a saída deve ser ordenada.
  4. Gere as datas e copie os valores ISO.
  5. Salve o intervalo e as configurações com qualquer caso de teste que você precise reproduzir.

Internamente, a ferramenta calcula o número de dias entre os pontos finais, seleciona um deslocamento uniforme e o adiciona ao início usando a aritmética somente de data UTC.

Por exemplo, um intervalo de um dia contendo apenas 1º de janeiro tem um deslocamento possível: 0. Um intervalo de 1º a 31 de janeiro tem 31 deslocamentos possíveis, de 0 a 30.

O gerador é executado localmente e usa a fonte aleatória criptográfica do navegador para cada deslocamento. Ele também verifica se a contagem exclusiva solicitada se enquadra no intervalo selecionado.

Endpoints inclusivos e exclusivos

Um intervalo inclusivo inclui as datas de início e de término. Uma faixa final exclusiva inclui o início, mas para antes do final. Erros pontuais são comuns aqui, então escreva a regra ao lado do teste ou atividade.

Para um ano completo, de 1º de janeiro a 31 de dezembro inclusive, o último dia deve ser um resultado possível. Se, em vez disso, você usar 1º de janeiro do ano seguinte como ponto final exclusivo, calcule o deslocamento em relação a esse limite.

Anos bissextos e aritmética do calendário

Os anos bissextos são tratados corretamente quando você adiciona dias com uma ferramenta com reconhecimento de calendário. Não presuma que todo ano tem 365 dias ou que cada quarto ano é bissexto em todos os sistemas de calendário. Para a maioria das aplicações empresariais modernas, o calendário gregoriano proléptico e uma biblioteca de datas padrão são suficientes.

As datas históricas requerem cuidado extra porque os calendários e as datas de adoção regional diferem. Se o resultado tiver significado jurídico, científico ou histórico, documente o sistema de calendário, bem como o fuso horário.

Fusos horários e horários do dia

Uma data de calendário não é o mesmo que um carimbo de data/hora; a referência de data MDN explica o modelo JavaScript subjacente. Um valor somente de data, como 2027-03-08, não precisa ser alterado quando visualizado em outro fuso horário. Convertê-lo por meio de um carimbo de data/hora local à meia-noite pode movê-lo acidentalmente para o dia anterior ou seguinte.

Para resultados somente de data, mantenha o cálculo no tipo somente data ou use uma convenção UTC consistente. Se você também precisar de um horário aleatório, defina o fuso horário, gere segundos ou minutos dentro do intervalo permitido e considere as transições para o horário de verão.

Planejamento, simulações e testes

Use datas aleatórias para criar marcos de projetos fictícios, cronogramas de prática aleatórios, transações de amostra ou casos de teste próximos aos limites do mês e do ano. Inclua também casos extremos deliberados: 29 de fevereiro, fins de mês, mudanças no horário de verão e as datas mínima e máxima.

Os testes aleatórios devem complementar os exemplos determinísticos. Salve o deslocamento, intervalo e fuso horário gerados com qualquer teste com falha para que possa ser reproduzido.

Resultado final

Gere uma data aleatória selecionando um deslocamento de dia uniforme dentro de um intervalo claramente definido. Deixe a aritmética com reconhecimento de calendário lidar com durações de meses e anos bissextos e mantenha os valores somente de data separados dos carimbos de data e hora. Pontos de extremidade, formatos e fusos horários explícitos evitam a maioria dos bugs de datas aleatórias.

Experimente a ferramenta

Gerador de datas aleatórias

Gere datas aleatórias válidas.

Abra o gerador
Pela nossa equipe editorial

Guias independentes e ferramentas de navegador gratuitas para escolhas aleatórias justas e transparentes.

Sobre