Autor
|
Tema: Problema con la hora (lenguaje C) (Leído 3,135 veces)
|
santos96
Desconectado
Mensajes: 3
|
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.
|
|
|
En línea
|
|
|
|
do-while
Desconectado
Mensajes: 1.276
¿Habra que sacarla de paseo?
|
¡Buenas!
Busca alguna referencia del lenguaje C y mira las funciones que tienes en time.h, no te hace falta más.
¡Saludos!
|
|
|
En línea
|
- Doctor, confundo los números y los colores. - Vaya marrón. - ¿Marrón? ¡Por el culo te la hinco!
|
|
|
santos96
Desconectado
Mensajes: 3
|
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!
|
|
|
En línea
|
|
|
|
тαптяα
Desconectado
Mensajes: 1.151
Sic utere tuo ut alienum non laeda
|
/* * 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
|
|
|
En línea
|
|
|
|
santos96
Desconectado
Mensajes: 3
|
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.
|
|
|
En línea
|
|
|
|
тαптяα
Desconectado
Mensajes: 1.151
Sic utere tuo ut alienum non laeda
|
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
|
|
|
En línea
|
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
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. 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. Para extraer los valores de la cadena puedes utilizar sscanf, un ejemplo basado en el tuyo es: #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { char fecha [] = "04/05/2015:11:15"; struct tm d; int rv; rv = sscanf(fecha , "%d/%d/%d:%d:%d", &d.tm_mday, &d.tm_mon, &d.tm_year, &d.tm_min, &d.tm_sec); if (rv == 5) printf("%04d/%02d/%02d\n", d. tm_year, d. tm_mon, d. tm_mday); return EXIT_SUCCESS; }
Un saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Problema a la hora de instalar un juego.
Juegos y Consolas
|
lipman
|
0
|
1,416
|
22 Noviembre 2006, 17:54 pm
por lipman
|
|
|
Problema de Fecha y Hora en ASP.NET
.NET (C#, VB.NET, ASP)
|
jacj0102
|
2
|
3,936
|
4 Agosto 2011, 06:51 am
por jacj0102
|
|
|
MessageBox , problema a la hora de mostralo.
« 1 2 »
Programación C/C++
|
piluve
|
11
|
4,748
|
18 Enero 2014, 20:17 pm
por x64core
|
|
|
El precio de la RAM dejará de ser un problema a la hora de montar un PC
Noticias
|
wolfbcn
|
0
|
870
|
6 Junio 2019, 21:45 pm
por wolfbcn
|
|
|
Problema a la hora de descargar un pdf
PHP
|
yoelrodguez
|
4
|
2,587
|
4 Abril 2023, 00:12 am
por yoelrodguez
|
|