Mostrar texto, datas e horas no Power Apps

No Power Apps, adicione datas e horas a uma aplicação baseada em telas e formate-as para mostrar o nível de detalhe certo ou para refletir a sua região. Calcule a quantidade de tempo entre duas datas ou calcule uma data que seja um determinado período de tempo antes ou após uma data que especificar. Converta datas para ou de valores separados para dias, meses e anos, e converta horas para ou a partir de valores separados para horas, minutos e segundos.

Por exemplo, adicione dados de utilizadores sobre as ações ou reuniões de clientes, dados a partir de uma origem externa ou dados de outra aplicação criada no Power Apps. Se esses dados incluem horas até ao milissegundo, arredonde-os para o minuto mais próximo para simplificar. Calcule quantos dias tem antes de um grande marco. Se pretender agendar reuniões com clientes a cada cinco dias, calcule automaticamente essas datas. Se 10 de maio de 1985 estiver armazenado em campos separados para o dia, mês e ano, consolide-os para um valor único. Por outro lado, divida cada data em valores separados se a sua aplicação os gerir separadamente.

Pré-requisitos

  • Inscreva-se no Power Apps e, em seguida, inicie sessão com as mesmas credenciais que utilizou para se inscrever.
  • Criar uma aplicação ou abrir uma aplicação existente no Power Apps.
  • Saiba como configurar um controlo no Power Apps.

Mostrar texto num controlo de Etiqueta

Mostrar texto num controlo de Etiqueta, ao definir o valor da respetiva propriedade de Texto. Defina esta propriedade, ao escrever diretamente no controlo ou ao escrever uma expressão na barra de fórmulas.

  • Se escrever diretamente no controlo, mostra exatamente o que escreve.
  • Se escrever uma expressão na barra de fórmulas, o controlo mostra o resultado da expressão.

Seguem-se alguns exemplos.

  1. Adicione um controlo Etiqueta designado ShowText e defina a sua propriedade Texto para esta fórmula:
    Now()

    Se o computador estiver definido para a região "en-us", a data e hora atuais aparecem neste formato:
    mm/dd/aaaa hh:mm AM/PM

    Se o computador estiver definido para uma região como "fr-fr", a data e hora atuais aparecem neste formato:
    dd/mm/aaaa hh:mm AM/PM

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

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

    O controlo mostra o número de dias entre hoje e 1 de janeiro de 2020, através destas 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.
    • DateValue, que converte uma cadeia literal, conforme mostrado entre aspas para um valor em que podem ser efetuados cálculos.
  3. Adicione um controlo de Introdução de texto com o nome BirthDate e mova-o sob ShowText.

  4. Em BirthDate, escreva o mês e o dia da sua data de nascimento (por exemplo, 05/18).

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

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

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

Formatar datas e horas com o DateTimeValue

Converter as datas e horas de cadeias de texto para valores que pode formatar numa variedade de formas e utilizar em cálculos. Especifique o formato com opções incorporadas e personalizadas.

Nota

As funções DateTimeValue e DateValue 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 controlo de Introdução de texto designado ArrivalDateTime e escreva uma data e hora neste formato:
    5/10/85 6h15

  2. Adicione um controlo Etiqueta designado ShowDate e defina a sua propriedade Texto para esta fórmula:
    DateTimeValue(ArrivalDateTime.Text)

    Converter uma data/hora de texto num valor

    ShowDate mostra as mesmas informações que escreveu, mas foi convertida de texto para um valor e formatada de forma diferente. Por exemplo, o ano é apresentado com quatro dígitos, em vez de apenas dois.

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

    Alterar ShowDate

    ShowDate mostra o dia antes do mês, como um utilizador francês esperaria.

    Dica

    Para ver uma lista de outras regiões no Intellisense, remova as aspas de fecho e fr da fórmula, mas deixe as aspas de abertura:

    Mostrar uma lista de regiões

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

    Utilizar fórmulas incorporadas

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

    Dica

    O parâmetro DateTimeFormat suporta vários outros formatos incorporados. Para apresentar essa lista, remova LongDateTime da fórmula.

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

    Utilizar formato personalizado

    ShowDate mostra o valor de data/hora no formato que especificou, 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 com DateValue

  1. Adicione um controlo de Introdução de texto designado ArrivalDate e, em seguida, escreva uma data no mesmo (por exemplo, 5/10/85).

  2. Adicione um controlo de Etiqueta designado FormatDate e defina a sua propriedade Texto para esta fórmula:
    DateValue(ArrivalDate.Text)

    FormatDate mostra a data em que escreveu, exceto o ano que é apresentado com quatro dígitos.

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

    FormatDate mostra o dia anterior ao mês, tal como um utilizador francês esperaria.

  4. Para utilizar um dos vários formatos incorporados, defina a propriedade Texto de FormatDate para 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 utilizar um formato personalizado, defina a propriedade Texto de FormatDate para esta fórmula:
    Text(DateValue(ArrivalDate.Text), "aa/mm/dd")

    FormatDate mostra a data no formato especificado.

Formatar uma hora com DateTimeValue

  1. Adicione um controlo de Introdução de texto com o nome ArrivalTime e, em seguida, escreva 6:15 AM no mesmo.

  2. Adicione um controlo de Etiqueta designado ShowTime.

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

    ShowTime mostra a hora especificada, incluindo segundos.

  4. Para utilizar um formato personalizado, defina a propriedade Texto de ShowTime para 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, introduza hh:mm:ss.f ou hh:mm:ss.ff na fórmula.

Mostrar o tempo entre as datas

  1. Adicione dois controlos de Introdução de texto designados Início e Fim.

  2. Escreva 4/1/2015 no Início e 1/1/2016 no Fim.

  3. Adicione um controlo de Etiqueta designado DateDiff e defina a sua propriedade Texto para 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 para 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 a hora nessas unidades.

Identificar uma data antes ou depois de outra data

  1. Adicione um controlo de Introdução de texto designado Início e escreva 5/10/1985 no mesmo.

  2. Adicione um controlo de Etiqueta designado DateAdd e defina a sua propriedade Texto para esta fórmula:
    DateAdd(DateValue(Start.Text), 3)

    Adicionar três dias

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

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

    Subtrair três dias

    DateAdd mostra 5/7/1985, que é três dias antes da data no Início.

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

    Adicionar três meses

    A etiqueta mostra 8/10/1985, que é três meses após a data no 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 de Início.

Calcular datas com base em anos, meses e dias

  1. Adicione três controlos Pendentes designados Ano, Mês e Dia.

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

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

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

  5. Adicione um controlo Etiqueta e defina a respetiva propriedade Text para esta fórmula:
    Text(Date(Value(Year.SelectedText.Value), Value(Month.SelectedText.Value), Value(Day.SelectedText.Value)), DateTimeFormat.LongDate)

    Quarta-feira, 1 de Janeiro de 2014 está listado por predefinição. Selecione os valores diferentes nos controlos Pendentes para alterar a data no controlo de Etiqueta.

Poderá ter de converter os dados que não pretende. Se adicionar controlos de Introdução de texto em vez de controlos Pendentes, um utilizador pode introduzir uma data incorreta, como 45 de Maio. A função de Data processa dados atípicos das seguintes formas:

  • Se um valor de ano estiver entre 0 e 1899 (inclusive), a função adiciona esse valor a 1900 para calcular o ano.
  • Se um valor de ano estiver entre 1900 e 9999 (inclusive), a função utiliza esse valor como o ano.
  • Se um valor de ano é inferior a 0 ou é 10000 ou superior, a função devolve um valor de erro.
  • Se um valor de mês for superior a 12, a função adiciona esse número de meses para o primeiro mês do ano especificado.
  • Se um valor de mês for inferior a 1, a função subtrai esse número de meses mais 1 a partir do primeiro mês do ano especificado.
  • Se um valor de dia for superior ao número de dias no mês especificado, a função adiciona esses dias ao primeiro dia do mês e devolve a data correspondente do mês subsequente.
  • Se um valor de dia for inferior a 1, a função subtrai esses dias mais 1 ao primeiro dia do mês especificado.

Calcular horas com base em horas, minutos e segundos

  1. Adicione duas listas Pendentes designadas Hora e Minuto.

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

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

  4. Adicione um controlo Etiqueta e defina a respetiva propriedade Text para esta fórmula:

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

  5. Selecione 15 na Hora e 45 no Minuto.

    O controlo Etiqueta mostra 15h45.

    Pode adicionar entradas à Hora e ao Minuto para que os utilizadores possam selecionar a partir de um intervalo maior de horas e de um número mais exato de minutos. Também pode adicionar uma terceiro controlo Pendente, para que os utilizadores possam especificar segundos. Se adicionar uma terceira lista, defina a propriedade de Texto do controlo Etiqueta para a seguinte expressão:
    Text(Time(Value(Hour.Selected.Value), Value(Minute.Selected.Value), Value(Second.Selected.Value)), DateTimeFormat.LongTime)