elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Algoritmo para Obtener el día de la semana[C]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Algoritmo para Obtener el día de la semana[C]  (Leído 5,553 veces)
NOB2014


Desconectado Desconectado

Mensajes: 366



Ver Perfil
Algoritmo para Obtener el día de la semana[C]
« en: 25 Mayo 2017, 23:03 pm »

Hola, muy buen día. -
El programa que dejo a continuación logra perfectamente lo que necesito, pero quiero meter todo esto en una función para obtener el día de la semana, nada más que eso y me parecen muchas líneas para lograr tan solo una, alguien tiene algo con menos líneas y que haga lo mismo? .-

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. char *dias [] = {" ", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado", "Domingo"} ;
  6.  
  7. int main ( int argc, char *argv[ ] ){
  8. struct tm fecha;
  9. int anyo, mes, dia;
  10.  
  11. printf (" \n año.....: ");
  12. scanf ("%d", &anyo) ;
  13.  
  14. printf( " Mes......: ");
  15. scanf ("%d", &mes);
  16.  
  17. printf ( " Dia......: ");
  18. scanf ("%d", &dia) ;
  19.  
  20. fecha.tm_year = anyo - 1900;
  21. fecha.tm_mon = mes - 1;
  22. fecha.tm_mday = dia;
  23. fecha.tm_hour = 0;
  24. fecha.tm_min = 0;
  25. fecha.tm_sec = 1;
  26. fecha.tm_isdst = -1;
  27.  
  28. if (mktime (&fecha) == -1){
  29. puts ( " Error en la fecha. " ) ;
  30. exit(-1);
  31. }
  32.  
  33. if (fecha.tm_wday == 0)
  34. fecha.tm_wday = 7;
  35.  
  36. printf("\n El %d/%d/%d es %s" , dia, mes, anyo, dias[fecha.tm_wday]);
  37.  
  38. return EXIT_SUCCESS;
  39. }

Desde ya muchas gracias.
Saludos.


En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.348


Ver Perfil
Re: Algoritmo para Obtener el día de la semana[C]
« Respuesta #1 en: 26 Mayo 2017, 02:01 am »

Hay varios algoritmos que solucionan esto de una forma eficaz...

Te señalo, por ejemplo el algoritmo conocido como: "congruencia de Zeller":

Crea un array con los días de la semana:
Código:
DiaSemana(0 a 6) = [Domingo, Lunes, Martes, ...]

Este sería el cálculo:
Código:
Funcion CalcularDiaSemana(Dia, Mes, Año) string
    n = ((14 - Mes) \ 12)
    Año = (Año - n)
    Mes = (Mes + (12 * n) - 2)
    Return DiaSemana(((Dia + Año + (Año \ 4) - (Año \ 100) + (Año \ 400) + ((31 * Mes) \ 12)) Mod 7))
Fin Funcion




En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Cómo obtener la semana actual a partir del día actual
Bases de Datos
cpichi.cu 4 11,009 Último mensaje 25 Septiembre 2018, 17:25 pm
por cchianalino
¿La mejor ciudad de España para pasar un fin de semana? « 1 2 3 »
Foro Libre
dimitrix 24 11,581 Último mensaje 2 Noviembre 2011, 00:03 am
por SPARRY
Programa para averiguar el dia de la semana
Programación C/C++
Caster 4 2,321 Último mensaje 18 Julio 2013, 16:34 pm
por Caster
Obtener algoritmo de encriptacion utilizado
Criptografía
agus0 3 3,773 Último mensaje 8 Marzo 2015, 12:38 pm
por agus0
¿Algoritmo para obtener todas las palabras de un fichero en python?
Programación General
pran_krr 1 2,512 Último mensaje 11 Noviembre 2019, 14:33 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines