Como colocar barras ("/") automaticamente na data?

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Como colocar barras ("/") automaticamente na data?

Re: Como colocar barras ("/") automaticamente na data?

Post by rubbioli » 16 Sep 2019, 14:05

ola!!!
Obrigado por seu tempo, mas não funcionou!
após digitar por exemplo 16092019 nada de aparecerem as barras!

Desde já, obrigado.
garry wrote:
15 Sep 2019, 14:45
short example

Code: Select all

Gui, Add, Edit, vA     w300 ,%A_now%              ;- or type 20190915
Gui, Add, Edit, vEdit2 w300 readonly
Gui, add, button, gA1,START
Gui, Show
Return
Guiclose:
exitapp
A1:
GuiControlGet,A
stringmid,d,a,7,2
stringmid,m,a,5,2
stringmid,y,a,1,4
c=%d%/%m%/%y%
GuiControl, Text, Edit2, %c%
Return

Re: Como colocar barras ("/") automaticamente na data?

Post by Gio » 16 Sep 2019, 11:26

Bom dia Rubbioli.

Seja bem-vindo ao fórum da comunidade do AutoHotkey.

Se entendi o que você deseja, creio que o script abaixo fará o que quer.

Code: Select all

SetBatchLines, -1
SendMode, Input

$0::
$1::
$2::
$3::
$4::
$5::
$6::
$7::
$8::
$9::
BlockInput, On
NUMBERS := NUMBERS . SubStr(A_ThisHotkey, 2, 1)
CURRENT_NUMBER := SubStr(A_ThisHotkey, 2, 1)
If ((SubStr(NUMBERS, -3, 4) >= 1900) AND (SubStr(NUMBERS, -3, 4) <= 2099) AND (StrLen(NUMBERS) >= 8) AND (SubStr(NUMBERS, -7, 2) <= 31) AND (SubStr(NUMBERS, -5, 2) <= 12))
{
	Send {BackSpace}{BackSpace}{BackSpace}{BackSpace}{BackSpace}{BackSpace}{BackSpace}
	DATE_TO_WRITE := SubStr(NUMBERS, -7, 2) . "/" . SubStr(NUMBERS, -5, 2) . "/" . SubStr(NUMBERS, -3, 4)
	Send %DATE_TO_WRITE%
	NUMBERS := ""
}
else
{
	Send %CURRENT_NUMBER%
}
BlockInput, Off
Return


~a::
~b::
~c::
~d::
~e::
~f::
~g::
~h::
~i::
~j::
~k::
~l::
~m::
~n::
~o::
~p::
~q::
~r::
~s::
~t::
~u::
~v::
~x::
~y::
~z::
~BackSpace::
NUMBERS := ""
Return
Basicamente, sempre que você escrever uma sequência de 8 números, o script vai verificar se é uma data válida entre 01/01/1900 e 31/12/2019. Se for, ele vai adicionar as barras. Se não for, ele não vai fazer nada. Além disso, se você precisar escrever uma sequência que se encaixa na descrição, mas não quiser colocar as barras automaticamente, basta apertar um backspace antes do final da sequência e depois reescrever o último número. Por fim, se você escrever alguma letra no meio da sequência, o script descartará a sequência de números armazenada.

Espero ter ajudado, se precisar de mais alguma coisa ou tiver alguma dúvida, só postar abaixo :thumbup:

Re: Como colocar barras ("/") automaticamente na data?

Post by garry » 15 Sep 2019, 14:45

short example

Code: Select all

Gui, Add, Edit, vA     w300 ,%A_now%              ;- or type 20190915
Gui, Add, Edit, vEdit2 w300 readonly
Gui, add, button, gA1,START
Gui, Show
Return
Guiclose:
exitapp
A1:
GuiControlGet,A
stringmid,d,a,7,2
stringmid,m,a,5,2
stringmid,y,a,1,4
c=%d%/%m%/%y%
GuiControl, Text, Edit2, %c%
Return

Code: Select all

x=16092019 
Gui, Add, Edit, vA     w300 ,%x%                     ;- as example  day/month/year
Gui, Add, Edit, vEdit2 w300 readonly
Gui, add, button, gA1,START
Gui, Show
Return
Guiclose:
exitapp
A1:
GuiControlGet,A
;stringmid,d,a,7,2
;stringmid,m,a,5,2
;stringmid,y,a,1,4

stringmid,d,a,1,2
stringmid,m,a,3,2
stringmid,y,a,5,4

c=%d%/%m%/%y%
GuiControl, Text, Edit2, %c%  ;- 16/09/2019
Return

Como colocar barras ("/") automaticamente na data?

Post by rubbioli » 14 Sep 2019, 21:14

Gostaria de um script que insira automaticamente a "/" na data.
Exemplo: ao digitar 14092019 apareça 14/09/2019.
Só uso datas entre 19xx e 20xx.
Desde já, obrigado!!!

Top