Escolar Documentos
Profissional Documentos
Cultura Documentos
Trabalhando Com Horas e Datas PDF
Trabalhando Com Horas e Datas PDF
Sumario:
Sobre o Autor:
Email:
Uderson@gmail.com
Onde:
Tamanho da varivel: 8
Valor Inicial : 00000000.
Onde:
Tamanho da varivel: 6
Valor Inicial : 000000.
Declarao:
Exe.:
O sistema R/3 contm diversas variveis de sistemas para controle, entre elas
as variveis para Hora e Data:
SY-DATUM
SY-UZEIT
Exe.:
Clculos
Para trabalhar com clculos de datas o abap uma linguagem Forte, pois
ao realizar uma calculo adicionando ou subtraindo um valor numrico em
uma varivel do tipo data, o prprio abap trata os dados.
Exe.:
DATA_ATUAL = SY-DATUM.
WRITE DATA_ATUAL.
WRITE DATA_ATUAL.
DATA_ATUAL = DATA_ATUAL - 1.
WRITE DATA_ATUAL.
DATE_COMPUTE_DAY
Exemplo:
DATA_ATUAL = SY-DATUM.
WRITE: / DIA_DA_SEMANA.
CASE DIA_DA_SEMANA.
WHEN 1.
WRITE: / 'SEGUNDA-FEIRA'.
WHEN 2.
WRITE: / 'TERA-FEIRA'.
WHEN 3.
WRITE: / 'QUARTA-FEIRA'.
WHEN 4.
WRITE: / 'QUINTA-FEIRA'.
WHEN 5.
WRITE: / 'SEXTA-FEIRA'.
WHEN 6.
WRITE: / 'SABADO'.
WHEN 7.
WRITE: / 'DOMINGO'.
ENDCASE.
Se numero > 1
Numero = numero -1
Seno
Numero = numero + 6
Fim
DATE_TO_DAY
Exe.:
DATA_ATUAL = SY-DATUM.
WRITE: DIA_DA_SEMANA.
MONTH_NAMES_GET
o Numero do ms
o Nome abreviao do Ms
o Nome completo do ms
Entrada:
o Idioma
Sada:
o SPRAS = Idioma
o MNR = Numero do ms
o KTX = Nome do ms abreviado
o LTX = Nome do ms complete.
Exemplo:
IDIOMA = 'PT'.
IF SY-SUBRC = 0.
LOOP AT MESES.
WRITE: / MESES-MNR, ' ', MESES-LTX.
ENDLOOP.
ENDIF.
FKK_LAST_DAY_OF_MONTH
Esta funo retorna o ultimo dia de um ms, este retorno baseado sobre
a data de entrada, por exemplo qual o ultimo dia do ms de janeiro.
A entrada uma data no formato DDMMYYYY e a sada DDMMYYYY.
Est funo pode ser utilizada para realizar um calculo por exemplo, quero
descobri quantos dias falta para terminar o ms a partir de hoje.
Exemplo:
HOJE = SY-DATUM.
IF SY-SUBRC = 0.
ENDIF.
HR_AUPBS_MONTH_DAY
Esta funo muito interessante, pois ela realiza clculos entre duas datas,
os clculos de retornos so dados de quantidade de dias entre data inicial,e
final, quantidade de ms(ses) entre a data inicial e final e quantidade de
anos entre a data inicial e a data final, e a quantidade total de dias entre a
data total e a data final.
Exemplo:
Entrada
Sada
Exemplo:
DATA_INICIAL = SY-DATUM.
DATA_FINAL = SY-DATUM + 500.
DAY_IN_WEEK
Entrada:
Exemplo:
DATE_GET_WEEK
Entrada:
Sada:
Exemplo:
DATA = SY-DATUM.
HRIQ_WEEK_GET_FIRST_DAY
Entrada:
Sada:
Exemplo:
DATA = SY-DATUM.
/OSP/GET_DAYS_IN_MONTH
A partir de uma data est funo retorna o numero de dias total relativo
aquele ms, est funo muito importante para descobrir os dias totais de
fevereiro, pois este ms tem uma variao de 28 e 29 dependendo d ano.
Entrada:
Sada:
Exemplo:
HOJE = SY-DATUM.
CACS_DATE_GET_YEAR_MONTH
Est funo apenas uma funo que divide uma data em ms e anos, a
entrada a data no formato DD.MM.YYYY o retorno as quebra em suas
variveis contendo os dados de ms e anos.
SD_DATETIME_DIFFERENCE
Est funo retorna a diferena de dias entre duas datas, entre a data
inicial e a data final.
Entrada:
Sada:
Exemplo:
DATA1 = SY-DATUM.
DATA2 = SY-DATUM + 10.
HORA1 = SY-UZEIT.
HORA2 = SY-UZEIT + 2.
WRITE: 'DIFERENA DIAS: ', DIFD, ' DIFERENA HORAS: ', DIFH.
RP_LAST_DAY_OF_MONTHS
Exemplo:
DATA1 = SY-DATUM.
RP_CALC_DATE_IN_INTERVAL
Est funo uma das funes mais importantes para clculos com datas,
os clculos sero realizados por esta funo, ela responsvel por realizar
os clculos sobre uma data ficando transparente ao programador ABAP
como os tipos de dado sero transportados, por exemplo, para realizar um
calculo da data de hoje at uma data determinada, por exemplo.
Est funo pode incrementar dias, meses e anos sobre uma data, tambm
pode decrementar dias, meses e anos.
+ Incremento
- Decremetno
Sada:
Data no formato DD.MM.YYYYY.
Exemplo:
DATAC = SY-DATUM.
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
EXPORTING
DATE = DATAC
DAYS = DAYS
MONTHS = MONTHS
SIGNUM = '+'
YEARS = YEARS
IMPORTING
CALC_DATE = DATAF.
WRITE: DATAF.
L_MC_TIME_DIFFERENCE
Est funo retorna os minutos de ente duas datas, estas datas podem ser
passadas juntamente de horas e retornado os minutos de entre a data
inicial e a data final.
Exemplo um dia tem 24 horas ento um dia tem 1.440 minutos pos cada
hora contm 60 minutos e um dia tem 24 horas ento 24 * 60 = 1.440.
Entrada:
Exemplo:
DATAFROM = SY-DATUM.
DATATO = SY-DATUM + 1.
WRITE: DELTATIME.
DATE_CONVERT_TO_FACTORYDATE
o Entrada:
CORRECT_OPTION = Signos
DATE = Data de gerao
FACTORY_CALENDAR_ID = Tipo do calendrio
o Sada:
Exemplo:
FACTORYDATE_CONVERT_TO_DATE
Exemplo.:
WRITE: / DATE_2.
DATE_CHECK_WORKINGDAY
Entrada:
Exemplo:
IF SY-SUBRC = 0.
ELSE.
ENDIF.
FIMA_DAYS_AND_MONTHS_AND_YEARS
o Entrada:
Data inicial
Data final
o Sada
Dias
Mss
Anos
Exemplo:
DATAFROM = SY-DATUM.
DATATO = SY-DATUM + 100.
SLS_MISC_GET_LAST_DAY_OF_MONTH
Est funo mais uma das funes que retornam o ultimo dia de um
determinado ms, a entrada uma data no formato DD.MM.YYYY, pois
necessrio informar a data completa pois cada data pode e variar o ultimo
dia.
Entrada:
Sada:
Exemplo:
DATAI = SY-DATUM.
WRITE: DATAF.
DATE_CREATE
Est funo criar uma determinada data a partir de outra data, podemos dizer
que est funo calcula uma determinada data acrescentando dias, meses e
anos.
Entrada:
o ANZAHL_JAHRE = Quantidades de Anos
o ANZAHL_KALTAGE = Quantidades de Dias
o ANZAHL_MONATE = Quantidades de Meses
o DATUM_EIN = Data atual
Sada
o DATUM_AUS = Data criada (calculada)
Exemplo:
DATAI = SY-DATUM.
WRITE: 'DATA ATUAL: ', DATAI, ' DATA CALCULADA: ', DATAF.
Quando trabalhamos com parameter do tipo data, o prprio sistema R/3 cria
um objeto MATCH CODE automaticamente, este objeto criar um calendrio
para escolha de dado.
Exemplo.:
Sada:
O calendrio