calculo de data

Discussão em 'Progress 4GL' iniciado por lunho, Fevereiro 8, 2012.

  1. lunho

    lunho Membro Participativo

    Pessoal, to com outra dificuldade em relação a data.
    No sistema, o usuario vai digitar a data do vencimento
    e eu tenho que jogar a data para o mesmo dia digitado do mês seguinte,(levando em consideração que pode ser várias parcelas) também verificar se o mês tem 30 ou 31 dias e se o ano é bisexto
    Alguém da um help?
  2. jdchaves

    jdchaves Membro Participativo

    Bom dia meu amigo, testa isso aqui, e veja se resolve o teu problema..
    Código:
    DEFINE VARIABLE dt-teste AS DATE        NO-UNDO.
    ASSIGN dt-teste = TODAY - 8. /*data de hj é 08/02/2012*/
    MESSAGE dt-teste
        VIEW-AS ALERT-BOX INFO BUTTONS OK.
    MESSAGE ADD-INTERVAL (dt-teste, 1, "month")
        VIEW-AS ALERT-BOX INFO BUTTONS OK.
    
  3. eriutoncharles

    eriutoncharles Membro Participativo

    Bom dia !

    Rotinazinha pra checar a questão do Bisexto.

    Código:
    def var i-ano       as int      no-undo.
    DEF VAR v-bisexto   AS LOG FORM "Sim/Não" NO-UNDO.
    
    
    ASSIGN i-Ano = YEAR(TODAY).
    
        IF    (i-ano mod 400  = 0   or
              (i-ano mod 4    = 0   and
               i-ano mod 100 <> 0)) THEN ASSIGN v-bisexto = YES. ELSE v-bisexto = NO.
    
    
    MESSAGE v-bisexto VIEW-AS ALERT-BOX.
    
    Geralmente jogamos data + 30.. ou 60 ou 90.
    Mas se a questão é Jogar para o mesmo dia da data digitada vc usa
    vData-parcela = DATE(MONTH(vDataDigitada) + 1, DAY(vDataDigitada), YEAR(vDataDigitada)).

    Porém vai dá erro, pq tem mes que nao tem 31 dias por ex.. quando digitado 31/03 , ele iria colocar 31/04 e iria dá erro.

Compartilhe esta Página