1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

ULTIMO DIA DO MES

Discussão em 'Progress 4GL' iniciado por eder.luca2012, Agosto 26, 2013.

  1. Agnaldo

    Agnaldo Membro Ativo

    /* Primeiro e útimo dia do mes de uma data informada */

    def var v_fectr1 as date no-undo.
    def var v_fectr2 as date no-undo.

    DEF VAR dd AS DATE.

    dd = DATE(03,10,2017).

    v_fectr1 = date(month(dd),01,year(dd)).
    if month(v_fectr1) < 12 then v_fectr2 = (date(month(dd) + 1,01,year(dd)) - 1).
    else v_fectr2 = (date(01,01,year(dd) + 1) - 1).

    DISP v_fectr1 v_fectr2.
  2. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    eu prefiro fazer assim:
    Código:
    define variable data      as date no-undo.
    define variable dataFinal as date no-undo.
    
    assign data = today.
    
    assign dataFinal = date(month(data),28,year(data)) + 10. /* Sempre havera o dia 28 em qualquer mes, dai avanço mais 10 dias pra virar o mes */
    assign dataFinal = date(month(dataFinal),1,year(dataFinal)) - 1. /* agora me posiciono no dia 1 do mes seguinte e volto 1 */
    
    
    Desse jeito não preciso me preocupar com virada de ano, se o ano é bissexto e tudo mais.
    rlfritz e af.dums curtiram isso.
  3. joelscampos

    joelscampos Membro Participativo

    Em vez de:

    Código:
    MESSAGE add-interval(02/28/2017,1,'month') VIEW-AS ALERT-BOX INFO BUTTONS OK.

    é melhor:

    Código:
    MESSAGE add-interval(03/01/2017,1,'month') - 1   VIEW-AS ALERT-BOX INFO BUTTONS OK.
  4. don.junior

    don.junior Membro Participativo

    Eu faço assim:
    ASSIGN dt-fim = DATE( MONTH(TODAY), 01, YEAR(TODAY) ) - 1.

    Att.
    Don Junior
  5. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Sim, se a intenção é só saber o ultimo dia do mes anterior ao atual, concordo.
    don.junior curtiu isso.

Compartilhe esta Página