Adicione datas e horas e formate-as para mostrar o nível certo de detalhes ou para refletir a sua localidade. Calcule a quantidade de tempo entre duas datas ou calcule uma data que é uma quantidade de tempo determinada antes ou após uma data especificada. Converta datas em valores separados ou de valores separados para dias, meses e anos e converta horas em valores separados ou de valores separados para horas, minutos e segundos.

Por exemplo, adicione dados de usuários sobre transações na bolsa de valores ou reuniões com clientes, dados de uma fonte externa ou dados de outro aplicativo criado no PowerApps. Se esses dados incluírem horários com milissegundos, arredonde-os para o minuto mais próximo para simplificar. Calcule quantos dias faltam para um marco importante. Se você quiser agendar reuniões com clientes a cada cinco dias, calcule essas datas automaticamente. Se 10 de maio de 1985 estiver armazenado em campos separados por dia, mês e ano, consolide-os em um único valor. Por outro lado, divida cada data em valores separados se seu aplicativo as gerenciar separadamente.

Pré-requisitos

  • Inscreva-se no PowerApps, instale-o, abra-o e entre, fornecendo as mesmas credenciais que usou para se inscrever.
  • Crie um aplicativo ou abra um aplicativo existente no PowerApps.
  • Saiba como configurar um controle no PowerApps.

Mostrar texto em um controle Rótulo

Mostre o texto em um controle Rótulo configurando o valor de sua propriedade Text. Defina essa propriedade digitando diretamente no controle ou digitando uma expressão na barra de fórmulas.

  • Se você digitar diretamente no controle, ele mostrará exatamente o que você digitar.
  • Se você digitar uma expressão na barra de fórmulas, o controle mostrará o resultado da expressão.

Abaixo há alguns exemplos.

  1. Adicione um controle Rótulo chamado ShowText e defina sua propriedade Text com esta fórmula:
    Now()

    Se seu computador tiver definido a localidade como "en-us", a data e hora atual será exibida neste formato:
    mm/dd/aaaa hh:mm AM/PM

    Se seu computador tiver definido a localidade como "fr-fr", a data e hora atual será exibida neste formato:
    dd/mm/aaaa hh:mm AM/PM

  2. Defina a propriedade Texto de ShowText como esta fórmula:
    DateDiff(Today(), DateValue("01/01/2020"))

    Número de dias entre hoje e 1º de janeiro de 2020

    O controle mostra o número de dias entre hoje e 1º de janeiro de 2020 usando estas funções:

    • DateDiff, que calcula o número de dias, trimestres ou anos entre duas datas.
    • Hoje, que calcula o dia atual como um valor.
    • ValorData, que converte uma cadeia de caracteres literal, conforme mostrado entre aspas duplas, em um valor no qual podem ser realizados cálculos.
  3. Adicione um controle Entrada de texto nomeado BirthDate e mova-o em ShowText.

  4. Em BirthDate, digite o mês e o dia do seu nascimento (por exemplo, 05/18).

  5. Defina a propriedade Texto de ShowText como esta fórmula:
    DateDiff(Today(), DateValue(BirthDate.Text))

    Número de dias entre hoje e seu aniversário

    ShowText mostra o número de dias entre hoje e qualquer data que você digitar em BirthDate. Se seu aniversário já tiver ocorrido este ano, ShowText exibirá um valor negativo.

Formatar datas e horas usando ValorDataHora

Converta datas e horas de cadeias de caracteres de texto em valores que podem ser formatados de várias maneiras e usados em cálculos. Especifique o formato usando as opções internas e personalizadas.

Observação:

As funções ValorDataHora e ValorData podem converter datas em qualquer um destes formatos em valores:
- MM/DD/AAAA
- DD/MM/AAAA
- DD Mês AAAA
- Mês DD, AAAA

  1. Adicione um controle Entrada de texto nomeado ArrivalDateTime e digite uma data e hora neste formato:
    5/10/85 6:15 AM

  2. Adicione um controle Rótulo chamado ShowDate e defina sua propriedade Text com esta fórmula:
    DateTimeValue(ArrivalDateTime.Text)

    Converter uma data/hora de texto em um valor

    ShowDate mostra as mesmas informações que você digitou, mas foi convertido de texto em um valor e formatado de maneira diferente. Por exemplo, o ano é exibido com quatro dígitos em vez de apenas dois.

  3. Altere a propriedade Texto de ShowDate para esta fórmula:
    DateTimeValue(ArrivalDateTime.Text, "fr")

    Mostrar um valor de data/hora no formato francês

    ShowDate mostra o dia antes do mês, como um usuário francês esperaria.

    Dica:

    Para exibir uma lista de outras localidades no IntelliSense, remova as aspas finais e fr da fórmula, mas deixe as aspas iniciais:

    Mostrar uma lista de localidades

  4. Para usar um dos vários formatos internos, altere a propriedade Texto de ShowDate para esta fórmula:
    Text(DateTimeValue(ArrivalDateTime.Text), DateTimeFormat.LongDateTime)

    Mostrar um valor de data/hora no formato francês

    ShowDate mostra o dia da semana, a data e a hora.

    Dica:

    O parâmetro DateTimeFormat dá suporte a vários outros formatos internos. Para exibir essa lista, remova LongDateTime da fórmula.

  5. Para usar um formato personalizado, altere a propriedade Texto de ShowDate para esta fórmula:
    Text(DateTimeValue(ArrivalDateTime.Text), "mm/dd/yyyy hh:mm:ss.fff AM/PM")

    Mostrar um valor de data/hora no formato francês

    ShowDate mostra o valor de data/hora no formato especificado, incluindo milissegundos.

    Dica:

    Para arredondar a hora para o décimo ou centésimo de segundo mais próximo, especifique hh:mm:ss.f ou hh:mm:ss.ff na fórmula.

Formatar uma data usando ValorData

  1. Adicione um controle Entrada de texto nomeado ArrivalDate e, em seguida, digite uma data nele (por exemplo, 5/10/85).

  2. Adicione um controle Rótulo chamado FormatDate e defina sua propriedade Text com esta fórmula:
    DateValue(ArrivalDate.Text)

    FormatDate mostra a data que você digitou, exceto que o ano é exibido como quatro dígitos.

  3. Defina a propriedade Texto de FormatDate como esta fórmula:
    DateValue(ArrivalDate.Text, "fr")

    FormatDate mostra o dia antes do mês, como um usuário francês esperaria.

  4. Para usar um dos vários formatos internos, defina a propriedade Texto de FormatDate como esta fórmula:
    Text(DateValue(ArrivalDate.Text), DateTimeFormat.LongDate)

    FormatDate mostra o dia da semana, o mês, o dia e o ano.

  5. Para usar um formato personalizado, defina a propriedade Texto de FormatDate como esta fórmula:
    Text(DateValue(ArrivalDate.Text), "yy/mm/dd")

    FormatDate mostra a data no formato especificado.

Formatar uma hora usando ValorDataHora

  1. Adicione um controle Entrada de texto nomeado ArrivalTime e, em seguida, digite 6:15 AM nele.

  2. Adicione um controle Rótulo chamado ShowTime.

  3. Para usar um dos vários formatos internos, defina a propriedade Texto de ShowTime como esta fórmula:
    Text(DateTimeValue(ArrivalTime.Text), DateTimeFormat.LongTime)

    ShowTime mostra a hora especificada, incluindo segundos.

  4. Para usar um formato personalizado, defina a propriedade Texto de ShowTime como esta fórmula:
    Text(DateTimeValue(ArrivalTime.Text), "hh:mm:ss.fff AM/PM")

    ShowTime mostra a hora especificada, incluindo segundos e milissegundos.

    Dica:

    Para arredondar a hora para o décimo ou centésimo de segundo mais próximo, insira hh:mm:ss.f ou hh:mm:ss.ff na fórmula.

Mostrar o tempo entre datas

  1. Adicione dois controles Entrada de texto nomeados Início e Fim.

  2. Digite 1/4/2015 em Início e digite 1/1/2016 em Fim.

  3. Adicione um controle Rótulo chamado DateDiff e defina sua propriedade Text com esta fórmula:
    DateDiff(DateValue(Start.Text), DateValue(End.Text))

    Comparar duas datas

    DateDiff mostra 275, que é o número de dias entre 1º de abril de 2015 e 1º de janeiro de 2016.

  4. Defina a propriedade Texto de DateDiff como esta fórmula:
    DateDiff(DateValue(Start.Text), DateValue(End.Text), Months)

    DateDiff mostra 9, que é o número de meses entre 1º de abril de 2015 e 1º de janeiro de 2016. Substitua Meses por Trimestres ou Anos para mostrar o tempo nessas unidades.

Identificar uma data antes ou após outra data

  1. Adicione um controle Entrada de texto nomeado Início e digite 10/5/1985 nele.

  2. Adicione um controle Rótulo chamado DateAdd e defina sua propriedade Text com esta fórmula:
    DateAdd(DateValue(Start.Text), 3)

    Adicionar três dias

    DateAdd mostra 5/13/1985, três dias após a data em Início.

  3. Defina a propriedade Texto de DateAdd como esta fórmula:
    DateAdd(DateValue(Start.Text), -3)

    Subtrair três dias

    DateAdd mostra 5/7/1985, três dias antes a data em Início.

  4. Altere a propriedade Texto de DateAdd para esta fórmula:
    DateAdd(DateValue(Start.Text), 3, Months)

    Adicionar três meses

    O rótulo mostra 8/10/1985, três meses após a data em Início. Substitua Meses por Trimestres ou Anos para identificar uma data que é o número especificado de trimestres ou anos antes ou depois da data em Início.

Calcular datas com base em anos, meses e dias

  1. Adicione três controles Lista suspensa nomeados Ano, Mês e Dia.

  2. Defina a propriedade Itens de Ano como esta fórmula:
    Table({Year:"2014"}, {Year:"2015"}, {Year:"2016"})

  3. Defina a propriedade Itens de Mês como esta fórmula:
    Table({Month:"1"}, {Month:"2"}, {Month:"3"}, {Month:"4"}, {Month:"5"}, {Month:"6"}, {Month:"7"}, {Month:"8"}, {Month:"9"}, {Month:"10"}, {Month:"11"}, {Month:"12"})

  4. Defina a propriedade Itens de Dia como esta fórmula:
    Table({Day:"1"}, {Day:"2"}, {Day:"3"}, {Day:"4"}, {Day:"5"}, {Day:"6"}, {Day:"7"}, {Day:"8"}, {Day:"9"}, {Day:"10"}, {Day:"11"}, {Day:"12"}, {Day:"13"}, {Day:"14"}, {Day:"15"}, {Day:"16"}, {Day:"17"}, {Day:"18"}, {Day:"19"}, {Day:"20"}, {Day:"21"}, {Day:"22"}, {Day:"23"}, {Day:"24"}, {Day:"25"}, {Day:"26"}, {Day:"27"}, {Day:"28"}, {Day:"29"}, {Day:"30"}, {Day:"31"})

  5. Adicione um controle Rótulo e defina sua propriedade Text com esta fórmula:
    Text(Date(Value(Year.Selected.Value), Value(Month.Selected.Value), Value(Day.Selected.Value)), DateTimeFormat.LongDate)

    Quarta-feira, 1º de janeiro de 2014 é listado por padrão. Selecione diferentes valores nos controles Lista suspensa para alterar a data no controle Rótulo.

Talvez seja necessário converter dados que você não esperava. Se você adicionar controles Entrada de texto em vez de controles Lista suspensa, um usuário poderá inserir uma data incorreta, como 45 de maio. A função Date manipula dados atípicos das seguintes maneiras:

  • Se um valor de ano estiver entre 0 e 1899 (inclusive), a função adicionará esse valor a 1900 para calcular o ano.
  • Se um valor de ano estiver entre 1900 e 9999 (inclusive), a função usará esse valor como o ano.
  • Se um valor de ano for menor que 0 ou for 10000 ou maior, a função retornará um valor de erro.
  • Se um valor de mês for maior que 12, a função adicionará esse número de meses ao primeiro mês do ano especificado.
  • Se um valor de mês for menor que 1, a função subtrairá esse número de meses, mais 1, do primeiro mês do ano especificado.
  • Se um valor de dia for maior que o número de dias do mês especificado, a função adicionará esse número de dias ao primeiro dia do mês e retornará a data correspondente de um mês subsequente.
  • Se um valor de dia for menor que 1, a função subtrairá esse número de dias, mais 1, do primeiro dia do mês especificado.

Calcular tempo com base em horas, minutos e segundos

  1. Adicione duas listas Suspensas nomeadas Hora e Minuto.

  2. Defina a propriedade Itens de Hora como esta fórmula:
    Table({Hour:"9"}, {Hour:"10"}, {Hour:"11"}, {Hour:"12"}, {Hour:"13"}, {Hour:"14"}, {Hour:"15"}, {Hour:"16"}, {Hour:"17"})

  3. Defina a propriedade Itens de Minuto como esta fórmula:
    Table({Minute:"0"}, {Minute:"15"}, {Minute:"30"}, {Minute:"45"})

  4. Adicione um controle Rótulo e defina sua propriedade Text com esta fórmula:

    Text(Time(Value(Hour.Selected.Value), Value(Minute.Selected.Value), 0), DateTimeFormat.ShortTime)

  5. Selecione 15 em Hora e 45 em Minuto.

    O controle Rótulo mostra 15h45.

    É possível adicionar entradas a Hora e Minuto para que os usuários possam selecionar um intervalo maior de horas e um número mais preciso de minutos. Também é possível adicionar um terceiro controle Lista suspensa para que os usuários possam especificar segundos. Se você adicionar uma terceira lista, defina a propriedade Text do controle Rótulo com a seguinte expressão:
    Text(Time(Value(Hour.Selected.Value), Value(Minute.Selected.Value), Value(Second.Selected.Value)), DateTimeFormat.LongTime)