Macro sc_date_dif

Boa tarde pessoal !

Veja se alguem pode me ajudar! Já procurei alguns tópicos relacionados com o assunto e o que encontrei não ajudou muito

Estou querendo fazer o calculo de duas datas para retornar a quantidade de dias, fiz o teste com uma data proxima da outra e funcionou , blz, mas ai fui fazer o teste com datas um pouco mais distantes por exemplo 01/12/2017 e 25/02/2018, me retornou 24, ou quando não dependendo da data , com uma diferença de 3 meses , o sistema me retorna um valor tipo 380

{dias_consumo}=sc_date_dif({dt_leit_atual}, “dd/mm/aaaa”, {dt_leit_anterior}, “dd/mm/aaaa”);

alguma sugestão ?

será que o formato interno dos campos {dt_leit_atual} e {dt_leit_anterior} em sua aplicação é dd/mm/aaaa??

Costuma ser aaaa-mm-dd.

Boa tarde Haroldo !

Antes estava, ai os resultados estavam gerando valores absurdos , então acertei para o formato correto. Mas mesmo assim após essa alteração os resultados gerados foram esses que descrevi abaixo .

exemplos dos calculos que estou fazendo :

Data Leitura Atual:22/02/2018
Data Leitura Anterior:01/02/2018
Resultado: -21

Data Leitura Atual:25/02/2018
Data Leitura Anterior:01/12/2017
Resultado: -389

Data Leitura Atual:27/02/2018
Data Leitura Anterior:10/01/2018
Resultado: 48

Data Leitura Atual:13/04/2017
Data Leitura Anterior:20/01/2017
Resultado: 24

Tenta alterar os formatos internos dos dois campos para aaaa-mm-dd e use essa mascara na macro.

Para verificar o conteúdo das variáveis utilize echo {variavel};

Seguinte Haroldo,

Mesmo fazendo essa alteração não deu certo…mas observei o seguinte quando as datas estão com o Mês com apenas “um” digito, por exemplo atual: 25/09/2018 e anterior:27/02/2018, está calculando corretamente testei do mês 01 até o mês 09 sem erros, mas quando altero as datas com mês com “dois” digitos comparado com o mês com "um " dígito exemplo atual: 28/12/2018 e anterior :21/09/2018 a diferença dos dias foi para -206.

Josimar e Haroldo!

Seguinte, o formato interno do campo data do scriptcase está orientando a usar os formatos a seguir "Utilizado quando é um campo de data, hora ou data-hora que esteja definido fora dos padrões do SQL.

Exemplo 1: Uma data guardada em um campo SQL definido como char(8) onde a posição 1 a 4 representa o ano, a posição 5 e 6 o mês e a posição 7 e 8 o dia, preencha este campo com a seguinte informação: AAAAMMDD ou aaaammdd

Exemplo 2: Uma hora guardada em um campo SQL definido como char(6) onde d posição 1 a 2 representa a hora, a posição 3 e 4 os minutos e a posição 5 e 6 os segundos, preencha este campo com a seguinte informação:
HHIISS ou hhiiss

Exemplo 3: Campo SQL numérico guardando o número de segundos e que você queira transformar em formato dias e/ou horas e/ou minutos, preencha este campo com a seguinte informação:
SEC ou sec

Exemplo 4: Campo SQL numérico guardando o número de minutos e que você queira transformar em formato dias e/ou horas, preencha este campo com a seguinte informação:
MIN ou min

Exemplo 5: Campo SQL numérico guardando o número de horas e que você queira transformar em formato dias, preencha este campo com a seguinte informação:
HOR ou hor

Você pode ter outros tipos de formação, veja outros exemplos:

DDMMAAAA
HHII
MMAAAA
AAAA
MMDD
DD
HH"

sem traços ou barras, ao colocar o echo {variavel} retornou o dia 16/02 como 1602.
Alterei o formato para dd-mm-aaaa adicionando manualmente os traços e deu certo !

Obrigado pela Ajuda!

Será que voltou o bug na sc_date_diff?

Seguiu a orientação do Jocimar? Deu um echo nas duas datas?

Você conhece new DateTime();

$DT = new DateTime(‘2018-09-25’);

$diff = $DT->diff( new DateTime( ‘2018-08-2018’ ) );

echo "Diferença de:
" . $diff->days . " dias
" . $diff->m . " meses
" . $diff->y . " anos
" . $diff->h . " horas
" . $diff->i . " minutos
" . $diff->s . " segundos
";

Ops… chegou atrasada minha última resposta, mas fica aí a dica.

Que isso Haroldo valeu, eu que agradeço a ajuda sua e do Josimar!

o acho acendeu a luz no fim do túnel pois identifiquei o formato que estava puxando a data !

Mais uma vez obrigado a todos!