Jump to content

datetimepicker - data menos dias?!? [RESOLVIDO]


j.mendes24
 Share

Recommended Posts

boas pessoal a minha duvida é o seguinte:

eu tenho um datetimepicker em que tem uma data. depois tenho uma textbox que vai conter X dias. e ao carregar num botao ele faça a data do datetimepicker - os X dias. e dpeois consiga por o resultado(data) noutro datetimepicker.

fiz-me entender?

Cump´z

Link to comment
Share on other sites

O datatype Date tem uma tareia de métodos que te ajudam com qualquer operação com datas que possas imaginar.

Eis uma forma de fazer as coisas:

        Dim Dias As Integer = 5
        DateTimePicker1.Value = DateTimePicker1.Value.AddDays(-1 * Dias)

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other sites

obrigado Pessoal!

Solução:

Dim Dias As Integer = 5
        DateTimePicker1.Value = DateTimePicker1.Value.AddDays(-Dias)

Se vais pedir os números a retirar numa textbox, faz como eu disse...ou seja, (supondo que é o textbox1, datetimepicker1, datetimepicker2 )

'texbox1 onde inserem os dias a descontar
'datetimepicker1 data a partir da qual descontar os dias
'datetimepicker2 onde ira apresentar a data referente depois de subtraida

datetimepicker2.value = datetimepicker1.value.adddays(-textbox1.text)

CUMPS

"use windows, você merece!"

Link to comment
Share on other sites

Se vais pedir os números a retirar numa textbox, faz como eu disse...ou seja, (supondo que é o textbox1, datetimepicker1, datetimepicker2 )

'texbox1 onde inserem os dias a descontar
'datetimepicker1 data a partir da qual descontar os dias
'datetimepicker2 onde ira apresentar a data referente depois de subtraida

datetimepicker2.value = datetimepicker1.value.adddays(-textbox1.text)

Que não é uma boa prática.

Usa antes:

datetimepicker2.value = datetimepicker1.value.adddays(-Integer.Parse(textbox1.text))

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other sites

Que não é uma boa prática.

Usa antes:

datetimepicker2.value = datetimepicker1.value.adddays(-Integer.Parse(textbox1.text))

Depende dos programadores! Devias não subestimar nem rebaixar as pessoas...mostraria humildade...é certo que não sei o que tu sabes, mas também não sou burro nenhum....

Isto para dizer que, eu antes de fazer essa operação iria validar o número, e se possível,  converte-lo para inteiro, como tu dizes em cima....mas claro, o estilo e modo de fazer as coisas, varia de programador em programador....

se calhar estou errado, mas pelo menos aceito sempre correcções com humildade... 😄

Cumprimentos

"use windows, você merece!"

Link to comment
Share on other sites

Nenhum dos métodos é uma boa prática...  😄

Porque ambos vão falhar caso o utilizador na textbox tenha outra coisa que não números...

Se calhar uma boa prática era verificar antes de tentar utilizar o número algo como o TryParse.  👍

E não se chateiem, que não vale a pena.

Link to comment
Share on other sites

Depende dos programadores! Devias não subestimar nem rebaixar as pessoas...mostraria humildade...é certo que não sei o que tu sabes, mas também não sou burro nenhum....

Isto para dizer que, eu antes de fazer essa operação iria validar o número, e se possível,  converte-lo para inteiro, como tu dizes em cima....mas claro, o estilo e modo de fazer as coisas, varia de programador em programador....

se calhar estou errado, mas pelo menos aceito sempre correcções com humildade... 😄

Cumprimentos

Bem, que péssima reacção. Há alguma coisa que me queiras dizer e não consigas, para responder desta forma a "não é uma boa prática" ?

@duduml

É um simples reparo, sem segundas intenções.

Se estás a passar a propriedade Text, nunca vai passar mais nada a não ser string, por mais validações que faças à textbox.

As minhas intenções não são, nunca foram, nem hão-de ser, mostrar estar acima ou abaixo seja de quem for.

Não chamei burro a ninguém, nem pouco mais ou menos e se foi, por ti, intrepertado assim, lamento e peço desculpa.

@r00fixxxer, não é dessa prática que estou a falar, mas sim uma das que considero mais importantes, que é operar datatypes iguais ou semelhantes o suficiente.

Isto porque só no VB (salvo seja) é que te é permitido operar inteiros com strings que representem inteiros.

Mesmo no VB, por norma, tenho o Option Strict ligado para que me impeça de o fazer.

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other sites

Nenhum dos métodos é uma boa prática...  👍

Porque ambos vão falhar caso o utilizador na textbox tenha outra coisa que não números...

Se calhar uma boa prática era verificar antes de tentar utilizar o número algo como o TryParse.  😕

E não se chateiem, que não vale a pena.

lol

eis uma coisa que iria proibir... 😄

quanto a simbolos, há maneiras de ver isso... 😛 como todos vos sabeis...

só há um pequeno pormenor, se o utilizador colocar "-1", aí, deverá somar um dia...

porque o número continua a ser inteiro... - com - dá + ...logo, +1...

Bem, que péssima reacção. Há alguma coisa que me queiras dizer e não consigas, para responder desta forma a "não é uma boa prática" ?

@duduml

É um simples reparo, sem segundas intenções.

Se estás a passar a propriedade Text, nunca vai passar mais nada a não ser string, por mais validações que faças à textbox.

As minhas intenções não são, nunca foram, nem hão-de ser, mostrar estar acima ou abaixo seja de quem for.

Não chamei burro a ninguém, nem pouco mais ou menos e se foi, por ti, intrepertado assim, lamento e peço desculpa.

@r00fixxxer, não é dessa prática que estou a falar, mas sim uma das que considero mais importantes, que é operar datatypes iguais ou semelhantes o suficiente.

Isto porque só no VB (salvo seja) é que te é permitido operar inteiros com strings que representem inteiros.

Mesmo no VB, por norma, tenho o Option Strict ligado para que me impeça de o fazer.

Pronto ribeiro, interpretei mal e sendo assim devo eu pedir desculpa... Peço desculpa.

Abraço

"use windows, você merece!"

Link to comment
Share on other sites

bem que discussao, cada um tem a sua maneira de programar e prontos.

pessoal eu viz como disse que ia fazer so alterei o nome dos DTP e na texbox onde o utiulizador insere os numeros ta controlado para só aceitar numeros. e nao utilo o textbox.text, em vez disso igualei uma variavel ao text caso ele nao seja = " ", e se for a variavel fica = 0

e funciona na perfeição.

Cump´z

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.