[RESOLVIDO] Identificar periodo atraves de uma data

Discussão em 'EMS , HCM e Totvs 11' iniciado por kmota, Outubro 1, 2010.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. kmota

    kmota Sem Pontuação

    Pessoal, como posso identificar qual o periodo(semana) atraves da data. Ex: quero saber em qual semana(periodo) está o dia 01/10/2010.

    Valeu.
  2. muertebr

    muertebr Membro Participativo

    da uma pesquisada no forum que ja vi esse código por ai.
  3. eduardo.leite

    eduardo.leite Equipe de Suporte Moderador Equipe de Suporte

    Caro colega, segue um exemplo abaixo, atente ao seguinte:

    01) No progress o padrão é 1-Domingo, 2-Segunda, 3-Terça, 4-Quarta, 5-Quinta, 6-Sexta e 7-Sábado, então a semana inicia no domingo e termina no sábado.

    02) O exemplo abaixo irá informar em qual semana está a data e qual o período inicial e final da semana, por exemplo considerando a data de hoje (02/10/2010) então estaremos na semana 40 que começou dia 26/09 e termina dia 02/10.

    Código:
    FUNCTION WeekNumber RETURNS INTEGER (INPUT dSomeDate AS DATE):
    
        DEFINE VARIABLE dStart AS DATE NO-UNDO.
    
        ASSIGN dStart = DATE(1,1,YEAR(dSomeDate))
               dStart = dStart + (8 - WEEKDAY(dStart)).
    
        IF dStart >= dSomeDate THEN
            RETURN 1.
        ELSE
            RETURN 2 + INTEGER( TRUNCATE(INTEGER(dSomeDate - dStart) / 7 , 0)).
    
    END FUNCTION.
    
    DEF VAR dt-data         AS DATE     NO-UNDO.
    
    ASSIGN dt-data = TODAY.
    
    MESSAGE "Data"      CHR(09) CHR(09) ": " dt-data                SKIP
            "Numero da Semana"  CHR(09) ": " weeknumber(dt-data)    SKIP 
            "Periodo Semanal"   CHR(09) ": " dt-data - WEEKDAY(dt-data) + 1 " a " dt-data + 7 - WEEKDAY(dt-data) SKIP  VIEW-AS ALERT-BOX.
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página