martes, 14 de abril de 2015

Trabajando con datatables .net

Buenos días.

Muchas veces nos encontramos con dudas de como operar un datatable, en realidad es sencillo pero para las personas que estamos acostumbradas a otros tipos de controles de datos se nos olvida.

Primero que todo algo básico es saber si esta vacío, normalmente hacemos pruebas de =="" , .empy = null pero el condicional sigue derecho así que la forma de saber si esta vacío es:

datatable.Rows.Count=0;

Con esta sentencia ya sabemos si llego vacío.

Otro truco es extraer el valor que esta adentro, para esto vamos a guiarnos por las filas y las columnas de la siguiente manera:

datatable.Rows[nFila][nColumna].toString();

Con esto le especificamos a nuestra datatable que me convierta a cadena el valor que se encuentra en la fila que necesito con la columna que necesito.

Saludos

Fuentes:

https://social.msdn.microsoft.com/Forums/es-ES/29936066-6520-4489-bfc4-c007bf89db63/como-saber-si-un-datatable-esta-vacio-?forum=vbes
https://social.msdn.microsoft.com/Forums/es-ES/6d000ac3-ff53-4005-be80-ec0dec08481b/obtener-datos-de-un-datatable?forum=vcses 

miércoles, 1 de abril de 2015

Comparar una fecha con el día anterior.

Buenos días.

Muchas veces nos encontramos con el dilema de comparar si una fecha fue del día anterior, sea para hacer cálculos o para generar procesos, hoy vamos a ver como podemos averiguar fechas anteriores o inclusive posteriores.

Vamos a usar la misma función para calcular el día actual pero le vamos a mandar a que nos reste un día (ayer) lo cual necesitamos, lo hacemos de la siguiente forma:

DateTime DiaAnterior = DateTime.Now.AddDays(-1);

Con esto almacenamos el día anterior, ya es muy obvio que podemos mandar como parámetros la cantidad de días que queremos agregar o quitar con respecto a la fecha actual.

Adicional mente podemos trabajar otros trucos como:

Obtener el número de la semana:


int wueekNumber= System.Globalization.CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(FechaqueEnvio, System.Globalization.CalendarWeekRule.FirstDay, DayOfWeek.Monday);
Para la fecha actual sería:

DatePart(DateInterval.WeekOfYear, Now, FirstDayOfWeek.Monday, FirstWeekOfYear.Jan1)


Comparar dos fechas:

Existen muchas formas de comprar las fechas pero hoy veremos una curiosa y mas sencilla


int result = DateTime.Compare(date1, date2);
if (result < 0)
         relationship = "is earlier than";
      else if (result == 0)
         relationship = "is the same time as";         
      else
         relationship = "is later than";
Comparar si son el mismo día:
  1. Dim i As DateTime = "10/12/2008 10:10:10"
  2.         Dim a As DateTime = "10/12/2008 13:05:44"
  3.  
  4.         If (i.Day == a.Day and i.Month==a.Month and i.Year == a.Year) then

Obtener el número de días que tiene el mes actual:

int dias = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);


 Saludos

Extras:
http://developear.blogspot.com/2013/05/como-obtener-el-numero-de-dias-que.html
http://stackoverflow.com/questions/17707087/how-to-calculate-the-number-of-the-week-in-a-year
https://msdn.microsoft.com/es-es/library/system.datetime.compare%28v=vs.110%29.aspx
http://www.devjoker.com/foros/Foro-Visual-Basic-NET/2949/Numero-de-semana-del-a%C3%B1o.aspx
http://www.forosdelweb.com/f29/comparar-datetime-para-saber-si-mismo-dia-solo-c-768897/
http://www.cjorellana.net/2011/02/primer-y-ultimo-dia-de-mes-c.html
http://developear.blogspot.com/2013/05/como-obtener-el-numero-de-dias-que.html