Variável de Hora Bom dia/Boa tarde/Boa noite Topic is solved

Tire suas dúvidas sobre programação em AutoHotkey

Moderator: Gio

Azarfy
Posts: 33
Joined: 25 Mar 2020, 20:21

Variável de Hora Bom dia/Boa tarde/Boa noite

10 Jun 2020, 20:56

Estou com duvida de como montar uma auto variável, que dependendo da hora do dia ela manda respostas diferentes, uma vez li um TCC sobre porem agora que quero executar não acho.

Seria basicamente assim:

Code: Select all

;Entre 06:00 a 12:00 = bom dia
;Entre 12:01 a 17:59 = boa tarde
;Entre 18:00 a 05:59 = boa noite
Essa script iria me ajudar demais, se alguém sobe como montar um If sobre isso fiquei bem grato !!
User avatar
Gio
Posts: 1247
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Variável de Hora Bom dia/Boa tarde/Boa noite  Topic is solved

11 Jun 2020, 09:40

Bom dia Azarfy.

As variáveis embutidas A_Hour e A_Min contém basicamente a hora e o minuto daquele momento da execução.

Sendo assim tudo o que você tem que fazer é condicionar as mensagens ao valor que estiver contido nestas variáveis. Este valor é sempre atual, então mesmo que o script rode por dias, o momento da execução da linha é o que vai definir a mensagem a ser exibida.

Exemplo: No código abaixo verificamos apenas a variável A_Hour, pois 12:00:01 por exemplo, já é maior que 12:00 (então qualquer horário em que a hora seja 12 ou maior já seria boa tarde)

Code: Select all

If ((A_hour > 5) AND (A_hour < 12)) ;  Se for entre 06:00:00 e 11:59:59 será bom dia.
{
	msgbox % "Bom dia!"
}
Else if ((A_hour >= 12) AND (A_hour < 18)) ; Do contrário, se for entre 12:00:00 e 17:59:59 será boa tarde.
{
	msgbox % "Boa tarde!"
}
else If ((A_hour >= 18) OR (A_hour <= 5)) ; Aqui poderia ser simplesmente um Else também. Se for maior-que 18:00:00 OU se for menor-que 06:00:00, será boa noite.
{
	msgbox % "Boa noite!"
}
Return

:arrow: Se você quiser construir um código que verifique os minutos (por exemplo, 12:00:59 sendo bom dia e 12:01:00 sendo boa tarde), isso também é possível, mas a árvore de condicionais ficaria bem mais extensa, porque a hora e os minutos teriam que ser considerados em várias condições conjuntas.


Exemplo: para designar bom dia entre 06:01:00 e 12:00:59 você poderia fazer assim:

Code: Select all

If (((A_hour = 6) AND (A_Min >= 1)) OR  ((A_hour > 6) AND (A_hour < 12)) OR ((A_hour = 12) AND (A_Min < 1)))
{
	msgbox % "Bom dia!"
}
Isso porque:

1. hora = 6 e minuto >=1 pegaria de 06:01:00 até 06:59:59.
2. hora > 6 e hora < 12 pegaria de 07:00:00 até 11:59:59.
3. hora = 12 e minuto < 1 pegaria de 12:00:00 até 12:00:59.

Como cada uma das 3 é uma condição conjunta, usamos operadores lógicos E (AND) dentro delas.
Como QUALQUER das condições conjuntas acima ocasionará um bom dia, usamos operadores lógicos OU (OR) entre elas.

Espero ter ajudado, se ainda tiver alguma dúvida, basta postar abaixo :thumbup:
Azarfy
Posts: 33
Joined: 25 Mar 2020, 20:21

Re: Variável de Hora Bom dia/Boa tarde/Boa noite

11 Jun 2020, 10:42

:arrow: Muito obrigado novamente @Gio pela a sua ajuda !

Return to “Ajuda e Suporte Geral”

Who is online

Users browsing this forum: No registered users and 44 guests