Título: Problema con la hora (lenguaje C) Publicado por: santos96 en 7 Mayo 2015, 17:34 pm Buenas, tengo un par de dudas referentes a la hora en C:
Deseo realizar un programa que me solicite la fecha y hora en este formato (07/05/2015:17:45) es decir, 1º dia, 2º mes, 3º año y por ultimo la hora. Lo que debe hacer el programa es lo siguiente: Si la fecha introducida es anterior a la actual (ej: 07/05/2013:17:45) debe saltar un aviso de fecha anterior a la actual. Si se introduce una posterior el programa deberá calcularme el tiempo (en dias) que falta para dicha fecha. Gracias y un saludo. Título: Re: Problema con la hora (lenguaje C) Publicado por: do-while en 7 Mayo 2015, 18:12 pm ¡Buenas!
Busca alguna referencia del lenguaje C y mira las funciones que tienes en time.h, no te hace falta más. ¡Saludos! Título: Re: Problema con la hora (lenguaje C) Publicado por: santos96 en 7 Mayo 2015, 20:59 pm Hola compi!
Ya lo he hecho, pero el problema es que la hora que tomo del ordenador para comparar si es menor que la introducida y sino restarla, me la guarda en un string y no se como seguir a partir de ahi. Gracias! Título: Re: Problema con la hora (lenguaje C) Publicado por: тαптяα en 7 Mayo 2015, 22:42 pm /*
* time.c * * Copyright 2015 * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301, USA. * * */ #include <stdio.h> #include <time.h> int main( void ) { long int i=0; time_t comienzo, final; struct tm *tiempoComienzoPtr, *tiempoFinalPtr; comienzo = time( NULL ); for( i=0; i<10000; i++ ) printf( "-" ); final = time( NULL ); printf( "Comienzo: %u s\n", comienzo ); printf( "Final: %u s\n", final ); printf( "Número de segundos transcurridos desde el comienzo del programa: %f s\n", difftime(final, comienzo) ); tiempoComienzoPtr = gmtime( &comienzo ); tiempoFinalPtr = gmtime( &final ); printf( "Comienzo: %s\n", asctime(tiempoComienzoPtr) ); printf( "Final: %s\n", asctime(tiempoFinalPtr) ); return 0; } Es el codigo de ejemplo de la pagina C con clase sobre la librería time.h Título: Re: Problema con la hora (lenguaje C) Publicado por: santos96 en 8 Mayo 2015, 00:44 am Gracias!!
Ahora el unico problema que tengo es el siguiente, por ejemplo: int dia, mes, año, hora, minuto; char fecha [10] = "04/05/2015:11:15"; Como hago para guardar el día, mes, año, hora y minutos en las variables tipo int declaradas? La funcion atoi no me valdria porque al llegar a la ' / ' daria error. Título: Re: Problema con la hora (lenguaje C) Publicado por: тαптяα en 9 Mayo 2015, 12:35 pm Gracias!! Ahora el unico problema que tengo es el siguiente, por ejemplo: int dia, mes, año, hora, minuto; char fecha [10] = "04/05/2015:11:15"; Como hago para guardar el día, mes, año, hora y minutos en las variables tipo int declaradas? La funcion atoi no me valdria porque al llegar a la ' / ' daria error. Separa la cadena, cuando encuentre un '/' y vas guardando cada separación en una variable. Y los datos de esas variables podrás modificarlos a tu gusto Saludos Título: Re: Problema con la hora (lenguaje C) Publicado por: rir3760 en 9 Mayo 2015, 17:30 pm Ahora el unico problema que tengo es el siguiente, por ejemplo: En tu ejemplo no debes indicar el numero de elementos del array "fecha" ya que la literal "04/05/2015:11:15" tiene un tamaño mayor.int dia, mes, año, hora, minuto; char fecha [10] = "04/05/2015:11:15"; Como hago para guardar el día, mes, año, hora y minutos en las variables tipo int declaradas? La funcion atoi no me valdria porque al llegar a la ' / ' daria error. Para extraer los valores de la cadena puedes utilizar sscanf, un ejemplo basado en el tuyo es: Código
Un saludo |