diferencias entre semanas

20/04/2004 - 17:52 por Emerson | Informe spam
cómo puedo calcular cuántas semanas hay entre una fecha y otra,

muchas gracias,

Emerson

Preguntas similare

Leer las respuestas

#1 José Miguel Torres
20/04/2004 - 18:14 | Informe spam
Hola:

Probablemente habrá muchas formas, amí se me ocurre esta
DateTime i = new DateTime(2004,6,1); // dia 1 de junio del 2004
DateTime f = new DateTime(2004,12,1); // dia 1 de diciembre del 2004
int numSemanas = (i.DayOfYear - f.DayOfYear)/7;

(i.DayOfYear - f.DayOfYear) -> diferencia en dias de las dos fechas
/7 -> tenemos las semans

Saludos


José Miguel Torres
jtorres_diaz~~ARROBA~~terra.es



"Emerson" <emerson_sacar_arroba_leshalles.cl> escribió en el mensaje
news:
cómo puedo calcular cuántas semanas hay entre una fecha y otra,

muchas gracias,

Emerson


Respuesta Responder a este mensaje
#2 William Fernandez
20/04/2004 - 18:18 | Informe spam
Directamente no creo que puedas conseguirlo, mas lo que
te recomiendo hacer es que obtengas la diferencia en días
entre ambas fechas y luego dividas los días entre 7.

Saludos


cómo puedo calcular cuántas semanas hay entre una fecha


y otra,

muchas gracias,

Emerson


.

Respuesta Responder a este mensaje
#3 Emerson
20/04/2004 - 21:33 | Informe spam
muchas gracias por las respuestas... pero permítanme ser un poco más
exigente.

tu respuesta presentará algunos problemas como si calculo la cantidad de
semanas de un viernes al lunes, ya que son 3 días y contará como cero
semanas de diferencia.

qué piensan si utilizo (puede se un poco bruto) una conexión a SQL Server y
pruebo un comando del tipo:
select datediff(ww, fecha2, fecha2) as diferencia

???

muchas gracias,

EG



"José Miguel Torres" <jtorres_diaz~~ARROBA~~terra.es> escribió en el mensaje
news:%
Hola:

Probablemente habrá muchas formas, amí se me ocurre esta
DateTime i = new DateTime(2004,6,1); // dia 1 de junio del 2004
DateTime f = new DateTime(2004,12,1); // dia 1 de diciembre del 2004
int numSemanas = (i.DayOfYear - f.DayOfYear)/7;

(i.DayOfYear - f.DayOfYear) -> diferencia en dias de las dos fechas
/7 -> tenemos las semans

Saludos


José Miguel Torres
jtorres_diaz~~ARROBA~~terra.es



"Emerson" <emerson_sacar_arroba_leshalles.cl> escribió en el mensaje
news:
> cómo puedo calcular cuántas semanas hay entre una fecha y otra,
>
> muchas gracias,
>
> Emerson
>
>


Respuesta Responder a este mensaje
#4 Luis Ruiz
21/04/2004 - 01:26 | Informe spam
prueba este código, hace lo que necesitas en el click de
un botón con dos datetimepicker y muestra el resulatado
en un mesagebox:

private void button1_Click(object sender,
System.EventArgs e)
{
//Defines la configuración regional a usar
CultureInfo myCI = new CultureInfo("en-US");
//Defines el calendario a usar
Calendar myCal = myCI.Calendar;
//Defines la regla para calcular las semanas
CalendarWeekRule myCWR =
myCI.DateTimeFormat.CalendarWeekRule;
//Defines el primer día de la semana
DayOfWeek myFirstDOW = myCI.DateTimeFormat.FirstDayOfWeek;

//Este método obtiene la semana de una determinada fecha
int primerSemana = myCal.GetWeekOfYear(
this.dateTimePicker1.Value, myCWR, myFirstDOW );
int segundaSemana = myCal.GetWeekOfYear(
this.dateTimePicker2.Value,myCWR, myFirstDOW );
//Finalmente...
int diferencia = primerSemana - segundaSemana;

MessageBox.Show(diferencia.ToString());

}

El control calendar permite mostrar las semana pero no
logre sacarla a aprtir de una fecha, así que tuve esta
tarea hace un tiempo.

Saludos,



cómo puedo calcular cuántas semanas hay entre una fecha


y otra,

muchas gracias,

Emerson


.

Respuesta Responder a este mensaje
#5 José Miguel Torres
21/04/2004 - 08:31 | Informe spam
Hola Emerson:

Permíteme que te conteste. Verás, lo del SQL Server no creo que sea
'elegante' deja al SQL Server hacer su trabajo de gestor de datos, no de
fechas...

Lo del problema que presenta tienes razón, otro problema que plantea es
si miramos la dif entre el 1 de enero del 2005 y el 1 de diciembre del 2004,
son 4 semanas de dif en cambio en la contestación que te dí saldría u número
negativo.

Se trata de que en base a la calse DateTime, establezcas el algoritmo de
cálculo ya que si para tus necesidades de un viernes a un lunes aún habiendo
tres días hay una diferencia de una semana, quizás para otros no, así que
debes controlar todo ello por código, incluyendo el problema de cambio de
año, todo englobado en un método. Luis Ruiz, más abajo, te indica otra
posible solución.

En definitiva, sácale provecho a las clases desarrolladas para tal fin y
deja al SQL Server para esas tareas

Saludos


José Miguel Torres
jtorres_diaz~~ARROBA~~terra.es


"Emerson" <emerson_sacar_arroba_leshalles.cl> escribió en el mensaje
news:
muchas gracias por las respuestas... pero permítanme ser un poco más
exigente.

tu respuesta presentará algunos problemas como si calculo la cantidad de
semanas de un viernes al lunes, ya que son 3 días y contará como cero
semanas de diferencia.

qué piensan si utilizo (puede se un poco bruto) una conexión a SQL Server


y
pruebo un comando del tipo:
select datediff(ww, fecha2, fecha2) as diferencia

???

muchas gracias,

EG



"José Miguel Torres" <jtorres_diaz~~ARROBA~~terra.es> escribió en el


mensaje
news:%
> Hola:
>
> Probablemente habrá muchas formas, amí se me ocurre esta
> DateTime i = new DateTime(2004,6,1); // dia 1 de junio del 2004
> DateTime f = new DateTime(2004,12,1); // dia 1 de diciembre del 2004
> int numSemanas = (i.DayOfYear - f.DayOfYear)/7;
>
> (i.DayOfYear - f.DayOfYear) -> diferencia en dias de las dos fechas
> /7 -> tenemos las semans
>
> Saludos
>
>
> José Miguel Torres
> jtorres_diaz~~ARROBA~~terra.es
>
>
>
> "Emerson" <emerson_sacar_arroba_leshalles.cl> escribió en el mensaje
> news:
> > cómo puedo calcular cuántas semanas hay entre una fecha y otra,
> >
> > muchas gracias,
> >
> > Emerson
> >
> >
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida