miércoles, 23 de septiembre de 2009

saber dia de la semana en c#

en el trabajo tengo un requerimiento que tiene que desplegar el dia de la semana de x fecha.

En .net es super simple solo hay que darle un formato,al metodo tu string tambien acepta una cultura.

Aqui algunos ejemplos


public String dayOfWeek(DateTime? date){
return date.Value.ToString("ddd");
}


esto nos retorna el nombre corto[si lo podemos llamar asi],Wed,sun,etc,etc.

Si queremos que nos entrege el nombre completo es cosa de pasarle otro formato al metodo tu string.

public String dayOfWeekLarge(DateTime? date){
return date.Value.ToString("dddd");
}

Esto nos mostraria por ejemplo Wednesday

El el idioma que nos muestre los dias, depende la configuracion regional de nuestros equipos o servidor, si no esta configurado en ninguna parte la configuracion, esto por lo general se configura en el web.config.

si queremos asegurarnos por ejemplo que siempre lo muestre en español seria cosa de asignarle la cultura. de la siguiente forma:


public String dayOfWeek(DateTime? date){
return date.Value.ToString("ddd",new CultureInfo("es-ES"));
}

Esto ultimo tanto para "ddd" y "dddd"

--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com

12 comentarios:

  1. date.Value ????
    no existe esa propiedad

    ResponderEliminar
  2. Claro que existe, existe cuando un datetime puede ser nulo, EJ

    Datetime? fecha1;

    Los datetime que no son nuleables, claro no tienen la propiedad "value", EJ:

    DateTime fecha2;

    ResponderEliminar
  3. Gracias me ha servido :)
    Saludos!

    ResponderEliminar
  4. pra trabajar con una caja de texto en c# le he llamado mtxt_Fecha....
    la funcion q quiero utilizar es
    {DateTime dateValue = new DateTime(2008,11,6);
    Console.WriteLine((int)dateValue.DayOfWeek);}
    pro no entiendo cm poner mi mtxt_... o en dd mas bien ..!!!

    ResponderEliminar
  5. no entiendo muy bien tu pregunta, quieres que en un textbox te muestre una fecha??

    ResponderEliminar
  6. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  7. digamos....... tengo un masket text box.... dond tengo mi mascara asi 00/00/0000 de eso tengo q sacar el dia el mes el año entre otras cosas.. la vdd no entiendo cm utilizar el codigo q antes mencione...!!!!! me ayudas??

    ResponderEliminar
  8. pero ya tienes en el textbox la fecha y quieres sacarla??

    de ser asi tienes que hacer lo siguiente, separarlo por el caracter
    algo asi
    var arrelo = text1.text.split("/")
    var date = new datetime(arreglo[0],arreglo[1],arreglo[2[);

    eso va a depender del formato que lo tienes en el textbox.


    si lo que quieres es asignarlo aun text lo que tienes que hacer es:

    text1.text = datetime.now.year + "/" + datetime.now.month + "/" + datetime.now.day

    algo por el estilo,

    es eso??

    ResponderEliminar
  9. no es sobre este tema pro me podria ayudar???? necesito agregar datos a un ListView lo cual uso

    /*
    ListViewItem lv = new ListViewItem(txt_Productos.Text.ToString()); lv.SubItems.Add(UD_cantidad.Text.ToString()); lv.SubItems.Add(txt_Precio.Text.ToString());
    */

    pro necesito borrarlo Y pasarlo a otro ListView
    /*
    listV_ProductoBorrado.Items.Add(listV_Productos.SelectedItems[0].ToString()); listV_Productos.Items.Remove(listV_Productos.SelectedItems[0]);
    */

    y si lo elimino pro a na hora de meterlo al otro LV sale algo raro apart necesito borrarlo SubItempor SubItem pra modifical una caja de texto ahi..!!

    CM HAGO
    lo necesito pra mañana y me urgeeeee :S

    ResponderEliminar
  10. como lo asigno a un label

    ResponderEliminar
  11. nombreLabel = datetime.now;

    todo depende de si es el dia, el mes, fecha q necesites meter en el label

    ResponderEliminar
  12. Una forma más rápida de calcular el día de la semana : http://stackoverflow.com/a/22278311/3315914

    ResponderEliminar