Categoría: mis cosas

Posts de tipo personal o al menos que no son técnicos

  • vaya lío… VB 14 es VB 1 y C# 6 es C# 1

     

    Pues eso… que con todo esto de Roslyn (la nueva generación de compiladores de Visual Basic y C#) se ve que la numeración de los compiladores vuelve a empezar desde 1.0.

    En la versión actual de Visual Studio 2013 (con Update 4) las versiones de los compiladores incluidos son estos (tal como podemos ver en las figuras 1 y 2):
    Visual Basic 11
    C# 5.0

     
    Figura 1. Versión del compilador de C# incluido en Visual Studio 2013.4

     
    Figura 2. Versión del compilador de VB incluido en Visual Studio 2013.4

    Donde se han quedado las versiones 12 y 13 de Visual Basic es un misterio (al menos para mí) (*) pero en la versión preview de Visual Studio 2015 (hasta hace poco llamada Visual Studio 14) las versiones de los compiladores eran: C# 6.0 y VB 12, así que… se ve que el compilador de Visual Basic ha ganado dos versiones… 🙂

    (*)Sobre las versiones de VB:
    Yo pensaba que VB 12 era el que se incluía con VS2013 y se ve que mantiene el nombre o número VB 11, pero del VB 13 no recuerdo haber visto nada.
    De hecho VB 12 era el que corresponde con C# 6 en las CTP de Roslyn y posteriores versiones de Visual Studio CTP/Preview, aunque ahora en Roslyn se habla (o escribe) de C# 6 y VB 14.

     

    En el Visual Studio 2015 Preview (Ultimate) las versiones mostradas en las información de los compiladores son la 1.0 (con el número de compilación que no sé de dónde viene, ya que es 41031 y la de Visual Studio es 14.0.223110.1) tal como puedes apreciar en las figuras 3 y 4:

     
    Figura 3. Versión del compilador de C# incluido en Vs2015 Preview

     
    Figura 4. Versión del compilador de VB incluido en Vs2015 Preview

    Pero bueno, por ahora si ves que hablan del compilador C# 6.0 o VB 14 están hablando de lo que vendrá con .NET 4.6 y Visual Studio 2015 (aunque la numeración interna es la 14).

    Por cierto, en los compiladores vienen un montón de novedades… a ver si te pongo una tabla que he visto hace un rato con un resumen de las novedades tanto de C# como de Visual Basic.

     

    Nos vemos.
    Guillermo

  • caminando con salud a la Stupa de Vélez, sábado 22 de noviembre 2014

     

    Pues eso… la caminata con Ángel (caminando con salud) de hoy sábado 22 de noviembre de 2014 ha sido a la Stupa de Vélez (Estupa de Kalachakra) en el centro budista Karma Guen y según "mi" Endomondo (en realidad el capturado por mi Lumia 920 con Windows Phone 8.1) han sido 11.71 KM, pero el de Ettore marcaba 12.6 KM o sea… que yo he andurriado menos (y eso que le di unas vueltas al patio del centro budista mientras hacía fotos a las rosas, en fin…)

     

    Aquí te dejo algunas fotos y el resto las puedes ver en mi muro de Facebook (y cuando las ponga en mis álbumes de picasaweb también te daré el enlace ya está puesto el enlace abajo del todo).

    WP_20141122_11_33_45_Pro_lr
    La Stupa de Kalachakra (Vélez-Málaga)

     

    WP_20141122_11_58_41_Pro_lr
    El grupo casi al completo (faltamos dos)

     

    WP_20141122_12_28_07_Pro_lr
    Una rosa amarilla (abierta) y con invitados

     

    Hiking Workout   Endomondo
    Mi recorrido con Endomondo para Windows Phone

     

    Las fotos en mis álbumes de picasaweb para el 2014:

    caminando con salud a la Stupa de Vélez, sábado 22 de noviembre 2014

     

     

    Nos vemos.
    Guillermo

  • Si comparas fechas, mejor usa TimeSpan en vez de Substract

     

    Pues eso… estaba haciendo unas comprobaciones para mostrar un aviso después de pasado cierto tiempo, por ejemplo, si han pasado varias horas o minutos entre dos fechas, concretamente entre una fecha almacenada y la otra la fecha y hora actual.

    Lo que en un principio se me ocurrió es hacer uso del método Substract de la clase DateTime (también Date para Visual Basic) y mirar si, por ejemplo, había al menos una diferencia de 5 minutos, algo así:

    VB:

    If fecha1.Subtract(fecha2).Minutes > 5 Then

    C#:

    if (fecha1.Subtract(fecha2).Minutes > 5)

    El problema es que esto solamente comprueba si en la información de los minutos de las dos fechas hay esa diferencia una vez que a los minutos de la fecha2 se le resten los minutos de la fecha1.

    Sí, está claro, así es como debe funcionar.

    Pero ¿qué pasa si los minutos no se diferencian en 5 pero la fecha completa (fecha1) es mayor que la otra (fecha2) en al menos un día (o solo una hora)?

    Pasa que Substract falla.

    Si lo que en realidad queremos es comprobar si entre dos fechas ha pasado cierto periodo de tiempo, por ejemplo los 5 minutos de este ejemplo, pero comprobando las fechas y horas al completo, (es decir, si ha pasado más de un día, quiere decir que ha pasado más de 5 minutos), entonces deberíamos usar TimeSpan.

    Este es el código a usar:

    VB:

    ' con TimeSpan tiene en cuenta la fecha completa
    Dim tsMinutos As New TimeSpan(0, 5, 0)
    Dim tsDif = fecha1.Subtract(fecha2)
    If tsDif > tsMinutos Then
        bAvisado = True
    End If
    

     

    C#:

    // con TimeSpan tiene en cuenta la fecha completa
    TimeSpan tsMinutos = new TimeSpan(0, 5, 0);
    var tsDif = fecha1.Subtract(fecha2);
    if (tsDif > tsMinutos)
    {
        bAvisado = true;
    }

     

    Captura usando estas dos fechas:

    fecha1 = New DateTime(2014, 11, 19, 16, 26, 0)

    fecha2 = New DateTime(2010, 10, 12, 7, 26, 0)

    Comparar_DateTime

     

    Y esto es todo…

    Si quieres ver el código al completo (aplicación de consola) tanto para Visual Basic como para C#, sigue este enlace a mi sitio de descargas:

    Fichero con el código de ejemplo.

    Nombre: Comparar_DateTime.zip

    Tamaño: 21,3 KB

    MD5 checksum: 78025D0A1B2DE530C46735E5288A4071

     

    Nos vemos

    Guillermo