Buenas a todos los usuarios de Foro.elhacker, bueno mi pregunta es esta.
Quiero hacer una aplicacion para contar los dias en Medio de Fecha A y Fecha B ejemplo , Cuantos dias hay desde el 25 de enero al 15 de julio.
Pero no se como empezar a hacerlo a ver si me pueden dar una ayuda por aca :P gracias xD
Restas B - A = X
X va a ser tipo TimeSpan. Los días los ves en X.TotalDays
Eso es todo :)
Yo soy un poco nuevo con la programacion xD
a ver si me puedes explicar un poco mas :)
Date1.Subtract(Date2).TotalDays
Así de simple :P
Tambien en vez de TotalDays puedes usar segundos, minutos, etc.
DateTime fechaInicial = new DateTime(2009, 3, 2, 6, 20, 30);
DateTime fechafinal = new DateTime(2010, 6, 2, 6, 20, 30);
TimeSpan result = fechafinal - fechaInicial;
MessageBox.Show(result.TotalDays);
EDIT:
haha se me adelantó Keyen Night por 21 segundos haha :P sí exacto, podrás ver otros totales, revisa MSDN.
Cabe destacar que estoy programando en vb.net porque el metodo substract no me sale y los ";" los borre pero tampoco me sale me sigue dando errores.
Si lo pusieron en C# a ver si lo ponen en vb.net si no bueno yo trato de sacarlo hay xd
Tanto el ejemplo mio como el de D4N93R funcionan perfectamente en .Net y en C#
No sabía que lo hacías en VB.Net
Uhmm no me acuerdo pero debe ser igual
Dim fechaInicial as New DateTime(2009, 3, 2, 6, 20, 30)
Dim fechaInicial as New DateTime(2010, 6, 2, 6, 20, 30);
Dim result as New TimeSpan
result = fechafinal - fechaInicial
MessageBox.Show(result.TotalDays);
PD: Corrijo mi post anterior porque tenía un error xD HHEHEHEHHEHEH
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim fechaInicial As New DateTime(2009, 3, 2, 6, 20, 30)
Dim fechafinal As New DateTime(2010, 6, 2, 6, 20, 30)
Dim vDiferencia As TimeSpan = fechafinal - fechaInicial
MessageBox.Show(vDiferencia.TotalDays)
End Sub
End Class
EDITO: Advertencia - mientras estabas leyendo, fueron publicadas 2 respuestas. Probablemente desees revisar tu mensaje.
Dim vDiferencia As TimeSpan = fechafinal - fechaInicial
:o NO sabía que VB hacía eso :D hohohohoh
PD, no le falta el New? ya ni se xD
mira he visto ejemplos con y sin el New, pero bue...visual basic te agarra lo que venga.. :xD >:D jaja.
El .Net hace transformaciones de tipos automaticamente e inicializa los objetos automaticamente tambien .Net es un lenguaje simple, comodo y muy visual lo que le falta es potencia :-\
si le pones
As New TimeSpan no soporta que despues le hagas una asignación, y se lo tenes que hacer en otra linea.
Cita de: Keyen Night en 22 Julio 2010, 01:10 AM
El .Net hace transformaciones de tipos automaticamente e inicializa los objetos automaticamente tambien .Net es un lenguaje simple, comodo y muy visual lo que le falta es potencia :-\
potencia en que sentido?
Estamos haciendo un Messenger :xD así se puede en una linea:
Dim fechaInicial As New DateTime(2009, 3, 2, 6, 20, 30)
Dim fechafinal As New DateTime(2010, 6, 2, 6, 20, 30)
Dim vDiferencia As New TimeSpan(fechafinal.Ticks - fechaInicial.Ticks)
MessageBox.Show(vDiferencia.TotalDays)
Ya ya esta gracias a todos ya me funciona xD
Cita de: seba123neo en 22 Julio 2010, 01:12 AM
si le pones As New TimeSpan no soporta que despues le hagas una asignación, y se lo tenes que hacer en otra linea.
Cita de: Keyen Night en 22 Julio 2010, 01:10 AM
El .Net hace transformaciones de tipos automaticamente e inicializa los objetos automaticamente tambien .Net es un lenguaje simple, comodo y muy visual lo que le falta es potencia :-\
potencia en que sentido?
Es que no es asignación es simplemente un parametro en el constructor.xD LOL no lo había visto, pero gracias por aclarar lo de la asignación,.
Pregunta: No se podia hacer con el dateDiff? (O es que me afecto la vuelta al vb6 :silbar:)
Cita de: Keyen Night en 22 Julio 2010, 01:10 AM
El .Net hace transformaciones de tipos automaticamente e inicializa los objetos automaticamente tambien .Net es un lenguaje simple, comodo y muy visual lo que le falta es potencia :-\
Eso se regula con las opciones (Option strict, option explicit, option infer, etc). Si te lo admite, pero es mejor programar como se debe :P
[TROLL]Exacto Programar como se debe: programar en C# [/TROLL]
Quisas como estár más cerca del sistema, no se si me entiendo xD hay cosas en las cuales uno tiene que recurrir a C/C++ ya que no se pueden realizar en lenguajes intermedios, es que en programación mientras más nativo más cerca estas del procesador y más cerca estás del control total >:D
Con .Net me referia a Vb.Net y bueno acepto tus criticas yo soy aficionado a la programación por ahora...
Y cosas que no he podido hacer ha sido hookear apis :-X
Cita de: Keyen Night en 22 Julio 2010, 01:10 AM
El .Net hace transformaciones de tipos automaticamente e inicializa los objetos automaticamente tambien .Net es un lenguaje simple, comodo y muy visual lo que le falta es potencia :-\
Hombre que pena decir que no sabes lo que dices...
1. .Net no es un lenguaje, estas confundiendo .Net con VB.Net
2. .Net es una tecnologia (Ni una plataforma, Ni un lenguaje, Ni nada solo una Tecnologia!!!) y hay muchisimos lenguajes que pueden consumir y aplicar esta tecnologia (solo es necesario que el lenguaje cumpla con unas Normas CLS).
3. Los lenguajes mas comunes son C# (Considerado el Lenguaje Nativo), VB.NET (El cual evoluciono de la plataforma COM e implemento el CLS), Visual C++, Pascal, Cobol, Phyton, J#, F# y muchos mas!!!
4. Cuando te refieres a " inicializa los objetos automaticamente" no es algo que haga .Net como tecnologia, estas caracteristicas dependen del Lenguaje VB.NET lo hace de una forma y C# lo hace de otra muy distinta...
5. ¿Le falta Potencia?, espero no sonar arrogante!! (No es mi intención y perdon si te ofendes) pero potencia le falta al Desarrollador, ¿o acaso que no has podido hacer con .Net?
Atentamente,
Juan Manuel LombanaMicrosoft Certified Professional
Microsoft Student Partner
Medellín - Colombia