Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Ignorar horas no laborales

26 views
Skip to first unread message

Carl Fica

unread,
Apr 30, 2015, 11:37:37 AM4/30/15
to
Estimados, vengo por sabiduría. Necesito ignorar horas que no son laborales. las horas laborales son de 8:30 a 18:30.yo tengo una función para fin de semanas que es así(funciona).

private bool esdialaboral(DateTime fer)
{
if (fer.DayOfWeek == DayOfWeek.Saturday || fer.DayOfWeek == DayOfWeek.Sunday)
{
return false;
}
return true;
}
}

y la otra función la tengo así

private bool eshoralaboral(DateTime fer)
{
if (((fer.Hour >= 8) && (fer.Minute >= 30))
|| ((fer.Hour <= 18) && (fer.Minute <= 30)))
{
return true;
}
return false;
}

pero una vez que ejecuto el programa me sigue contando las horas en vez de ignorarlas. Agradece´re cualquier ayuda muchas gracias.

kevinkuja

unread,
Apr 30, 2015, 6:28:02 PM4/30/15
to
private bool eshoralaboral(DateTime fer) {
return ((fer.Hour >= 9 && fer.Hour <= 17) || (fer.Hour == 8 && fer.Minute >= 30) || (fer.Hour == 18 && fer.Minute <= 30));
}

Kalli

unread,
May 4, 2015, 12:53:40 PM5/4/15
to
Hola Carl,

Te recomiendo que utilices TDD para crear esta clase.
La idea es crear pequeños tests (hay quien les gusta llamarles ejemplos) de cada situación o escenario distinto y que pruebes que
Te recomiendo el libro de Carlos Blé. Es gratuito y está muy bien. Se lee muy rápido.
http://www.carlosble.com/downloads/disenoAgilConTdd_ebook.pdf

También te recomendaría evitar If..Then anidados.
Aunque tu método se entiende perfectísimamente, en situaciones un pelín más enrevesadas se lee mejor aplicando el refactoring "Replace Nested Conditional with Guard Clauses":
http://refactoring.com/catalog/replaceNestedConditionalWithGuardClauses.html
(está sacado de otro libro muy recomendable: el "Refactoring" de Martin Fowler.
Hay una cita muy buena de Kent Beck (creo) que dice que el código se escribe una vez pero se lee muchas. Es por eso que a veces, aunque parezcan cambios menores, merece la pena hacerlos para mejorar la legibilidad del código.

Cualquier cosilla que tengas, silba que por aquí estaremos...


Un saludo,
JC
0 new messages