Ideando

febrero 2, 2007

Función para determinar el nombre del día de la semana o el nombre del mes del año

Filed under: JavaScript, programacion — mrodriguez @ 11:55 pm

Estas funciones son bastante sencillas, pero en algún momento podrían serle útil a alguien:

Function NombreDiaDelaSemana(ByVal DiaDeLaSemana As Integer) As String
Dim ARR_DIA() As String = {“Domingo”, “Lunes”, “Martes”, _
“Miércoles”, “Jueves”, “Viernes”, “Sábado”}
Return (ARR_DIA(DiaDeLaSemana))
End Function

Function NombreMesDelAnio(ByVal MesDelAnio As Integer) As String
Dim ARR_MESES() As String = {“Enero”, “Febrero”, “Marzo”, _
“Abril”, “Mayo”, “Junio”, _
“Julio”, “Agosto”, “Septiembre”, _
“Octubre”, “Noviembre”, “Diciembre”}
Return (ARR_MESES(MesDelAnio))
End Function

En la primera función se le envia un entero que indicaría el número del día del que queremos obtener el nombre; para obtener el mes sería usando la segunda función pero enviandole el número del mes.

Aunque están hechas para VB, el concepto sería el mismo para casí cualquier lenguaje.

Mas información útil en: http://www.insesys.com.mx

Anuncios

7 comentarios »

  1. Bueno, pero si yo tengo la fecha 20-feb-2007, y quiero saber que dia cae el 20, con tu funcion es imposible saberlo.

    Esta muy bueno para el mes, pero para el dia no funciona.

    Saludos

    Comentario por Claudio — febrero 15, 2007 @ 2:07 pm

  2. Tienes razón, ambas funciones reciben un entero.

    Si requieres obtener el nombre del día a partir de una fecha, primero tienes que obtener de la fecha el número del día en la semana, esto, comunmente, puedes obtenerlo con alguna función predefinida propia del lenguaje que estés utilizando.

    Si necesitas algo mas específico, podemos verlo.

    Comentario por mrodriguez — febrero 15, 2007 @ 10:57 pm

  3. Por cierto, gracias por tu comentario. Creí que nadie veía esto.

    Comentario por mrodriguez — febrero 15, 2007 @ 10:59 pm

  4. Que onda compadre, oye tu funcion de los meses me sirvio bastante, pero me encontre con algo, al momento de yo mandarle el mes 6 me regresa Julio cuando en realidad deberia regresar Junio, y eso es porque estas contando a Enero como si fuera un mes 0, y pues eso no es posible por eso yo le agregue antes de enero otro campo al arreglo y le puse “ninguno”, solo para que no contara a enero como 0 sino como 1

    Espero haberme explicado aqui les dejo la funcion, pero no c si este bien, espero no te moleste la modificacion

    Saludos y Muchas Gracias

    Function NombreMesDelAnio(ByVal MesDelAnio As Integer) As String
    Dim ARR_MESES() As String = {“ninguno”, “January”, “February”, “March”, _
    “April”, “May”, “June”, _
    “July”, “August”, “September”, _
    “October”, “November”, “December”}
    Return (ARR_MESES(MesDelAnio))
    End Function

    Comentario por Jose Luis Ramirez — junio 20, 2007 @ 8:25 pm

  5. Tienes razón José Luis, la verdad es que por costumbre yo inicio siempre mis índices desde 0. Yo inicié programando en C, así que me quedé con la idea de que todos los arreglos inician funcionalmente desde la posición 0.

    Otra forma de arreglarlo es, dentro de la función, restarle uno al parámetro MesDelAnio. Me gusta más esa modificación que cambiar todo el arreglo, pero igualmente, para este caso, todo se vale, mientras funcione.

    Gracias por tu comentario y disculpa la tardanza.

    Comentario por mrodriguez — junio 29, 2007 @ 2:51 am

  6. Orale yo buscaba un algoritmo similar pero con este ya me dio una idea

    Comentario por Karina — agosto 27, 2007 @ 8:41 pm

  7. Cómo calcular qué día de la semana fue
    tb llamado algoritmo doomsday

    Vamos a ver en este post una forma para saber qué día de la semana fue cualquier fecha. El algoritmo consiste en calcular ciertos coeficientes a partir de la fecha (día, mes y año) y efectuar ciertos cálculos con ellos para quedarnos con un número entre 0 y 6. Después sabiendo qué número es el que corresponde a cada día conseguiremos resolver el problema. Vamos a explicar el método llevando a la vez un ejemplo: mi cumpleaños del año que viene, 1 de Mayo de 2007, que de antemano os digo que es martes:

    1.- El siglo: El primer coeficiente que necesitamos, llamémosle A, lo conseguimos con el siglo al que pertenece el año de la fecha siguiendo esta tabla:
    1700…1799 1800…1899 1900…1999 2000…2099 2100…2199 2200…2299
    +5 +3 +1 0 -2 -4

    En nuestro ejemplo obtenemos que A = 0

    2.- Año: Tomamos los dos últimos dígitos del año en cuestión y a ese número de dos cifras le sumamos un cuarto del mismo (despreciando los decimales). Eso nos proporciona el segundo coeficiente, digamos B.

    En nuestro caso: 7/4 = 1′75. Despreciamos los decimales y nos queda 1. Como los dos últimos dígitos son 07 tenemos que B = 8.

    3.- Años bisiestos: Éstos son los que cumplen que sus dos últimas cifras forman un múltiplo de 4 (por ejemplo, 1992 o 2004) excepto los terminados en 00. Entre estos últimos sólo son bisiestos los múltiplos de cuatrocientos (por ejemplo 2000). Nuestro tercer coeficiente, C depende de ellos: si el año es bisiesto, y el mes es enero o febrero el coeficiente será C = –1. En cualquier otro caso C = 0.

    En nuestro ejemplo, como 2007 no es bisiesto tenemos que C = 0.

    4.- Mes: El cuarto coeficiente, D, nos lo da la siguiente tabla:
    Enero Feb. Marzo Abril Mayo Junio Julio Agosto Sept. Oct. Nov. Dic.
    6 2 2 5 0 3 5 1 4 6 2 4

    En nuestro ejemplo, como el mes es mayo, tenemos que D = 0.

    5.- Día: El quinto coeficiente, E, es simplemente el día en cuestión. En este caso E = 1.

    6.- Algoritmo: Tomamos todos los coeficientes calculados y los sumamos. Y después calculamos el resto módulo 7 del número que obtenemos. Eso lo podemos hacer restando 7 al resultado tantas veces como sea necesario hasta obtener un número entre 0 y 6 que llamaremos R.

    En nuestro ejemplo:

    A + B + C + D + E = 0 + 8 + 0 + 0 + 1 = 9
    9 – 7 = 2

    Por tanto R = 2

    7.- Resultado: La asignación de números a cada día de la semana es la siguiente:
    Lunes Martes Miércoles Jueves Viernes Sábado Domingo
    1 2 3 4 5 6 0

    Por tanto, como en nuestro ejemplo R = 2 tenemos que:
    el 1 de Mayo de 2007 será martes

    como en realidad ocurre.

    Comentario por Nahaira Vallejo — diciembre 5, 2007 @ 8:30 pm


RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Blog de WordPress.com.

A %d blogueros les gusta esto: