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

[RESOLVIDO] Random Campo Hora sendo string

Discussão em 'EMS , HCM e Totvs 11' iniciado por muertebr, Maio 6, 2009.

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

    muertebr Membro Participativo

    Ola a todos :)

    Bom... to com um pequeno probleminha...

    Tenho um campo chamado horaentrada que é do formato "HH:MM:SS" que marca a hora de entrada dos funcionarios, to precisando faze um random nesse campo... por exemplo o cara entra as 08:00:00, precisaria faze um random no campo fazendo com que atribuisse horarios diferentes, exemplo 8:03:02 e assim por diante com no maximo 5 minutos de diferença...

    eu consegui faze retorna uma variavel do tipo string com 5 minutos de random... só que não to conseguindo junta os 2 campos

    ASSIGN hora-abono = STRING((RANDOM(1,9) * 32), 'HH:MM:SS').
  2. atila.cm

    atila.cm Membro Participativo

    Caro muertebr:

    Verifique se o exemplo abaixo lhe ajuda.

    DEF VAR hora-abono AS CHAR INIT "08:00:00".
    DEF VAR hora-abono1 AS CHAR INIT "08:00:00".
    ASSIGN hora-abono1 = STRING((RANDOM(1,9) * 32), 'HH:MM:SS').
    ASSIGN hora-abono = SUBSTRING(hora-abono,1,2) + SUBSTRING(hora-abono1,3,6).
    DISP hora-abono1 hora-abono.

    Abraços
    Atila Cagliari
    atila.cm@hotmail.com
  3. muertebr

    muertebr Membro Participativo


    Opa... da certo sim... só que pra hora exata... tipo 7:30 ele ja nao deu certo...
    mais vo tenta aki

    Muito obrigado ae pela dica
  4. muertebr

    muertebr Membro Participativo

    DEF VAR hora-abono LIKE bioHorariosxFuncionario.horaentrada.
    DEF VAR hora-abonada LIKE bioHorariosxFuncionario.horaentrada.
    DEFINE VARIABLE hora AS INTEGER FORMAT 99 NO-UNDO.
    DEFINE VARIABLE segundo AS INTEGER FORMAT 99 NO-UNDO.

    ASSIGN hora-abono = STRING((RANDOM(0,9) * 29), 'HH:MM:SS').
    ASSIGN hora = int(SUBSTRING(horaentrada,4,2)) + int(SUBSTRING(hora-abono,4,2)).
    segundo = INT(SUBSTRING(horaentrada,7,2)) + int(SUBSTRING(hora-abono,7,2)).
    ASSIGN hora-abonada = SUBSTRING(horaentrada,1,2) + ":" + STRING(hora,"99") + ":" + STRING(segundo,"99").

    DISP hora-abono
    hora-abonada
    horaentrada.

    pra quem quisé eu consegui dessa forma... c alguem soube de otra é só coloca ;)
  5. eduardo.leite

    eduardo.leite Equipe de Suporte Moderador Equipe de Suporte

    Caro colega,

    Teste a lógica abaixo:

    Código:
    
    def var i-random        as integer      no-undo.
    def var c-hora-entr     as character    no-undo.
    def var c-hora-abon     as character    no-undo.
    
    assign c-hora-entr = "08:00:00"
           i-random    = random(1,300).
    
    assign c-hora-abon = string((int(entry(1,c-hora-entr,":")) * 3600 + 
                                 int(entry(2,c-hora-entr,":")) * 60 + 
                                 int(entry(2,c-hora-entr,":")) + 
                                 i-random ),"hh:mm:ss").
    
    message "Hora Entrada: "     c-hora-entr                    skip 
            "Abono...........: " string(i-random,"hh:mm:ss")    skip 
            "Hora Abono..: "     c-hora-abon                    view-as alert-box.
    
    
  6. muertebr

    muertebr Membro Participativo

    Valeu eduardo.... fico melhor que o meu :)
    menos linhas de código (K)
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página