Executando verificação de segurança...
1

Eu me lembro de um episódio engraçado de quando eu comecei a programar há uns 8 anos. Eu tinha 13 ou 14 na época.

Eu precisava subtrair uma data de vencimento com a data atual e mostrar os dias que faltam para o vencimento ("Vencerá em 6 dias").

Mas quando eu substraio uma data que já venceu com a data atual a quantidade de dias fica negativa, obviamente. ("Venceu em -6 dias") Eu lembro que eu demorei umas 2 horas para me ligar que bastava multiplicar o resultado por -1 quando a data for menor que a data atual.

Foi uma coisa tão estúpida e idiota que entendi a importância de desenvolver o pensamento matemático e entender como ela funciona e não apenas aprender fórmulas e etc.

Carregando publicação patrocinada...
1

Outro jeito é inverter a ordem em que elas são subtraídas:

if (d1 < d2)
  diferenca = d2 - d1;
else
  diferenca = d1 - d2;

Ou usar abs(diferenca), para pegar sempre o valor positivo :-)