none
obtener el primer dia de la semana en asp.net c sharp RRS feed

  • 问题

  • Hola a todos tengo la siguiente pregunta, dada esta funcion

    DateTime fechadesdeSemana = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);

    no puedo usar la DayOfWeek me da error , y necesito saber el primer dia de esta semana , o sea de la semana actual y teniendo en cuenta que mi semana va a comenzar dia lunes, es para una consulta  y necesito que sea asi, gracias de antemano...para usarla de este modo

    *************************************************************************************************

     //PARA OBTENER LA CANTIDAD DE VENTAS por semana

            //dia lunes primer dia de esta semana actual
            DateTime fechadesdeSemana = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
            //fecha hasta es el dia de hoy
            string fechahastasemana = Convert.ToString(DateTime.Now.ToShortDateString());
            using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["SyBAutomotoresConnectionString2"].ToString()))
            {
                string consulta = @"SELECT COUNT(Ventas_Vehiculos.Cod_Operacion) AS CantMinutas
                                    FROM Ventas_Vehiculos                              
                                    WHERE(Id_Empleado LIKE '%' + @Empleado + '%') AND (Fecha_Venta BETWEEN @fechadesde AND @fechahasta )";
                conn.Open();
                SqlCommand comandoo = new SqlCommand(consulta, conn);

                comandoo.Parameters.AddWithValue("@fechadesde", fechadesdeSemana);
                comandoo.Parameters.AddWithValue("@fechahasta", fechahastasemana);
                comandoo.Parameters.AddWithValue("@Empleado", Empleado);
                SqlDataReader drDatos = comandoo.ExecuteReader();
                if (drDatos.Read())
                {
                    string cantminutas = drDatos["CantMinutas"].ToString();
                    txtcantventasSemana.Text = cantminutas.ToString();

                }

                comandoo.Connection.Close();
            }

    2011年11月3日 12:08

答案

全部回复

  • en lugar de usar

    DateTime fechadesdeSemana = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day)

    porque no usas

    DateTime fechadesdeSemana = DateTime.Today;

    digo es algo mas corto el codigo

     

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    2011年11月3日 12:38
  • y si aplicas estos metodos

    Getting the first day in a week with C#

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    2011年11月3日 12:40
  • lo que pasa que fecha desde semana seria el lunes que pasó, porque hoy ( es fecha hasta) , o sea mi consulta es desde el lunes hasta hoy jueves, por ejemplo ....y mañana desde el lunes hasta viernes
    2011年11月3日 12:44
  • claro se habia entendido

    solo remarque que en lugar de armar el datetime uses el Today para tomar la fecha actual

    para obtener el lunes aplcia lo comentado en el articulo del link


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    2011年11月3日 12:49
  • Hola,

     

    Acá tienes otro ejemplo de como implementarlo.

    First day of week

     

    Saludos,



    Jason Ulloa
    Mi Blog San José, Costa Rica
    2011年11月3日 13:05
  • Muchas gracias por los ejemplos, aunque use este ejemplo y me anduvo como anillo al dedo

     

    http://www.devcurry.com/2009/04/display-first-and-last-day-of-week-in.html


    quedandome asi:

    //dia lunes primer dia de esta semana actual
           
            DateTime dt = DateTime.Now;
            DateTime wkStDt = DateTime.MinValue;
            wkStDt = dt.AddDays(1 - Convert.ToDouble(dt.DayOfWeek));
            DateTime fechadesdesemana = wkStDt.Date;

     



    2011年11月4日 12:11
  • Para saber la fecha del lunes lo que hice fue, a la fceha actual restarle el numero de días que lleva la semana(para contar esos días se usa .DayOfWeek), pero como el domingo es donde empiezan a contar los dias de la semana, le resto 1(como multiplico por -1 para llevarlo al .addDays mas limpio por eso quitar un dia es poner +1). 
    var dayNow = DateTime.Now;  //fecha actual
    var daysOfWeek = ((int)dayNow.DayOfWeek * -1) + 1;  // numero de dias transcurrido en la semana
    var monday = dayNow.AddDays(daysOfWeek);  // a la fecha actual le resto el numero de días trancurridos desde el lunes y obtengo la fecha del lunes.


    2022年9月19日 14:18