Sumar dias laborables

20/02/2008 - 13:58 por LunNna | Informe spam
Hola a todos.

Quería saber si hay alguna manera de sumar días a una fecha pero que tenga
en cuenta si son dias laborables o no, considerando que los dias laborables
son de lunes a viernes.

Muchisimas gracias a todos.

Un saludo!

Preguntas similare

Leer las respuestas

#1 Felipe
21/02/2008 - 10:29 | Informe spam
On 20 feb, 13:58, LunNna wrote:
Hola a todos.

Quería saber si hay alguna manera de sumar días a una fecha pero que tenga
en cuenta si son dias laborables o no, considerando que los dias laborables
son de lunes a viernes.

Muchisimas gracias a todos.

Un saludo!



Yo tengo estas dos funciones, que quisiera optimizar en cuanto tuviera
un rato:

/// <summary>
/// Devuelve el siguiente día laborable.
/// </summary>
/// <param name="date">Fecha del que partir para calcular el
siguiente día laborable.</param>
/// <returns>Fecha con el siguiente día laborable.</returns>
public static DateTime NextWorkingDate(DateTime date)
{
if (date.DayOfWeek == DayOfWeek.Friday) return
date.AddDays(3);
if (date.DayOfWeek == DayOfWeek.Saturday) return
date.AddDays(2);
return date.AddDays(1);
}

/// <summary>
/// Devuelve el 'n' siguiente día laborable.
/// </summary>
/// <param name="date">Fecha del que partir para calcular el
siguiente día laborable.</param>
/// <param name="nTimes">Número de días laborables
siguientes.</param>
/// <returns>Fecha con el valor.</returns>
public static DateTime NextWorkingDate(DateTime date, uint
nTimes)
{
DateTime ret = date;
for (int i = 0; i < nTimes; i++)
ret = DateTimeMisc.NextWorkingDate(ret);

return ret;
}
Respuesta Responder a este mensaje
#2 Jose Luis Manners
22/02/2008 - 04:56 | Informe spam
Mira en mi blog:

http://blogs.geekdojo.net/jmanners/.../4098.aspx


Regards/Saludos,

Jose Luis Manners
Microsoft MVP Visual C#
http://www.josemanners.com/

"The cure for boredom is curiosity. There is no cure for curiosity."





"LunNna" wrote in message
news:
Hola a todos.

Quería saber si hay alguna manera de sumar días a una fecha pero que tenga
en cuenta si son dias laborables o no, considerando que los dias
laborables
son de lunes a viernes.

Muchisimas gracias a todos.

Un saludo!
Respuesta Responder a este mensaje
#3 LunNna
22/02/2008 - 11:15 | Informe spam
Muchas gracias a ambos. Tratare de unir ambas versiones para ver si saco una
funcion optimizada para hacer el calculo.

Un slaudo.

"Jose Luis Manners" wrote:

Mira en mi blog:

http://blogs.geekdojo.net/jmanners/.../4098.aspx


Regards/Saludos,

Jose Luis Manners
Microsoft MVP Visual C#
http://www.josemanners.com/

"The cure for boredom is curiosity. There is no cure for curiosity."





"LunNna" wrote in message
news:
> Hola a todos.
>
> Quería saber si hay alguna manera de sumar días a una fecha pero que tenga
> en cuenta si son dias laborables o no, considerando que los dias
> laborables
> son de lunes a viernes.
>
> Muchisimas gracias a todos.
>
> Un saludo!


Respuesta Responder a este mensaje
#4 LunNna
22/02/2008 - 11:37 | Informe spam
Hola! Os paso la funcion como me quedó por si os es util, tambien se aceptar
criticas para optimizarla:

public static DateTime SumarDiasLaborables(DateTime fechaInicio, int
cantidad) {
while (cantidad!=0) {
fechaInicio = fechaInicio.AddDays(1);
if (fechaInicio.DayOfWeek != DayOfWeek.Saturday &&
fechaInicio.DayOfWeek != DayOfWeek.Sunday)
cantidad--;
}
return fechaInicio;
}

Gracias por vuestra ayuda.

Un saludo.

"LunNna" wrote:

Muchas gracias a ambos. Tratare de unir ambas versiones para ver si saco una
funcion optimizada para hacer el calculo.

Un slaudo.

"Jose Luis Manners" wrote:

> Mira en mi blog:
>
> http://blogs.geekdojo.net/jmanners/.../4098.aspx
>
>
> Regards/Saludos,
>
> Jose Luis Manners
> Microsoft MVP Visual C#
> http://www.josemanners.com/
>
> "The cure for boredom is curiosity. There is no cure for curiosity."
>
>
>
>
>
> "LunNna" wrote in message
> news:
> > Hola a todos.
> >
> > Quería saber si hay alguna manera de sumar días a una fecha pero que tenga
> > en cuenta si son dias laborables o no, considerando que los dias
> > laborables
> > son de lunes a viernes.
> >
> > Muchisimas gracias a todos.
> >
> > Un saludo!
>
>
Respuesta Responder a este mensaje
#5 RFOG
22/02/2008 - 11:45 | Informe spam
Hola.

Si el rendimiento es un problema, puedes hacer lo siguiente:

Obtener el número de días totales restando las dos fechas. Ese valor lo
divides entre 7 (una división con enteros). Luego restas dos veces el
resultado. Algo así:

diasÿin-FIni;
dias-=(dias/7)*2;

Ojo con el paréntesis. No es lo mismo (dias/7)*2 que dias/(7*2) con
división de enteros, aunque el evaluador del C# debería calcularlo como
nos interesa sin ellos.

Tan sólo te queda comprobar que la fecha de inicio o la de fin no quede en
fin de semana y actuar en consecuencia si queda en tal.


En Fri, 22 Feb 2008 11:37:01 +0100, LunNna
escribió:

Hola! Os paso la funcion como me quedó por si os es util, tambien se
aceptar
criticas para optimizarla:

public static DateTime SumarDiasLaborables(DateTime fechaInicio, int
cantidad) {
while (cantidad!=0) {
fechaInicio = fechaInicio.AddDays(1);
if (fechaInicio.DayOfWeek != DayOfWeek.Saturday &&
fechaInicio.DayOfWeek != DayOfWeek.Sunday)
cantidad--;
}
return fechaInicio;
}

Gracias por vuestra ayuda.

Un saludo.

"LunNna" wrote:

Muchas gracias a ambos. Tratare de unir ambas versiones para ver si
saco una
funcion optimizada para hacer el calculo.

Un slaudo.

"Jose Luis Manners" wrote:

> Mira en mi blog:
>
> http://blogs.geekdojo.net/jmanners/.../4098.aspx
>
>
> Regards/Saludos,
>
> Jose Luis Manners
> Microsoft MVP Visual C#
> http://www.josemanners.com/
>
> "The cure for boredom is curiosity. There is no cure for curiosity."
>
>
>
>
>
> "LunNna" wrote in message
> news:
> > Hola a todos.
> >
> > Quería saber si hay alguna manera de sumar días a una fecha pero
que tenga
> > en cuenta si son dias laborables o no, considerando que los dias
> > laborables
> > son de lunes a viernes.
> >
> > Muchisimas gracias a todos.
> >
> > Un saludo!
>
>







Microsoft Visual C++ MVP
==Mi blog sobre programación: http://geeks.ms/blogs/rfog
Mi blog sobre literatura: http://rfog.blogsome.com
Libros, ciencia ficción y programación
Hay momentos en la vida de todo político, en que lo mejor que puede hacer
es no despegar los labios.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida