Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Obtener la fecha de la PC para después hacer comparación

Estas en el tema de Obtener la fecha de la PC para después hacer comparación en el foro de C/C++ en Foros del Web. Buen día: Necesito su valiosa ayuda, ahora para solucionar un problema de fecha: necesito obtener la fecha de la computadora, para después hacer una comparación ...
  #1 (permalink)  
Antiguo 30/05/2011, 18:17
Avatar de Nirvana  
Fecha de Ingreso: diciembre-2006
Mensajes: 129
Antigüedad: 17 años, 4 meses
Puntos: 0
Pregunta Obtener la fecha de la PC para después hacer comparación

Buen día:

Necesito su valiosa ayuda, ahora para solucionar un problema de fecha: necesito obtener la fecha de la computadora, para después hacer una comparación con otra fecha que el usuario introducirá (sera un programa para farmacia, para determinar si el medicamento caduco o caducara, es un proyecto sencillo para la universidad). Tengo mi código de la siguiente manera:

Código:
#include <dos.h>
#include <iostream>
using namespace std;

struct date 
{
    int da_year; // año actual (1980-2099)
    char da_day; // dia mes (1-31)
    char da_mon; // mes (1-12)
};

void getdate(struct date *f); 

main()
{
      date f;
      getdate(&f);
      cout << "\n Ano " << f.da_year;
      cout << "\n Dia " << f.da_day;
      cout << "\n Mes " << f.da_mon;
      system("pause");
}

No logro que este corra, por favor... ayuda :D :D :D :D
__________________
Lo mejor del Rock ha sido Kurt Cobain con Nirvana, aún existen buenos grupos como Korn y toda su música.
  #2 (permalink)  
Antiguo 30/05/2011, 19:02
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Obtener la fecha de la PC para después hacer comparación

Mira esta pagina, en especial el ejemplo:

http://www.cplusplus.com/reference/c...time/strftime/
  #3 (permalink)  
Antiguo 30/05/2011, 19:46
Avatar de Nirvana  
Fecha de Ingreso: diciembre-2006
Mensajes: 129
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Obtener la fecha de la PC para después hacer comparación

pero me interesa que este no los datos en f.da_year, f.da_day, f.da_mon para después realizar la comparación con otros datos y determinar si ya caduco el producto o no.

Me importa más eso que ver la fecha.... eso complica la situación no?
__________________
Lo mejor del Rock ha sido Kurt Cobain con Nirvana, aún existen buenos grupos como Korn y toda su música.
  #4 (permalink)  
Antiguo 31/05/2011, 16:32
Avatar de Nirvana  
Fecha de Ingreso: diciembre-2006
Mensajes: 129
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Obtener la fecha de la PC para después hacer comparación

Ya lo solucioné:

Lo que pasa que eso no era para C++ (me parece), modifiqué el codigo y me quedó algo así:

Código:
#include <windows.h> 
#include <conio.h>
#include <iostream.h>

main () 
{ 
    SYSTEMTIME c; 
    GetSystemTime (& c); 
    printf ("Ano: %d \n Month: %d \n Date: %d",c.wYear, c.wMonth, c.wDay);
    getch();
}
Eso si ya funciona y cumple con lo que deseaba :)

Muchas gracias!!!
__________________
Lo mejor del Rock ha sido Kurt Cobain con Nirvana, aún existen buenos grupos como Korn y toda su música.
  #5 (permalink)  
Antiguo 31/05/2011, 20:22
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Obtener la fecha de la PC para después hacer comparación

Si miras bien la estructura tm viene con lo que pedias. Era cuestion de mirar un poco.

http://www.cplusplus.com/reference/clibrary/ctime/tm/
  #6 (permalink)  
Antiguo 31/05/2011, 21:58
Avatar de Nirvana  
Fecha de Ingreso: diciembre-2006
Mensajes: 129
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Obtener la fecha de la PC para después hacer comparación

Es cierto!!!

El programa que puse anteriormente no cumplía las condiciones, si mostraba el año, pero no el dia ni el mes correctos... con la ayuda de tu enlace arregle mi código así:

Cita:
#include <iostream>
#include <ctime>
#include <conio.h>
using namespace std;

int main()
{
int Mes, Dia, Ano;
time_t t = time( NULL );
struct tm today = *localtime( &t );
Mes=today.tm_mon + 1;
Dia=today.tm_mday;
Ano =(today.tm_year+1900);
cout << "Today is " << Mes << "/" << Dia << "/" << Ano << endl;
getch();
return 0;
}
Este si me funciona jejejeje.... Gracias ! :D
__________________
Lo mejor del Rock ha sido Kurt Cobain con Nirvana, aún existen buenos grupos como Korn y toda su música.
  #7 (permalink)  
Antiguo 31/05/2011, 22:10
 
Fecha de Ingreso: mayo-2011
Mensajes: 3
Antigüedad: 13 años
Puntos: 0
Respuesta: Obtener la fecha de la PC para después hacer comparación

hola soy nuevo en este foro alguien me podria ayudar a amodificar este codigo para que solo me acepte caracteres de la A-Z

CREATE TABLE PRUEBA
(
IDCLAVE CHAR(10) PRIMARY KEY,
DESCRIP VARCHAR(30)
);

Ahora crearemos una funcion solo para validar caracteres ASCII que no esten entre 32 y 47, ya que insertaremos en un campo que es llave primaria, recuerda que las claves primarias no contienes espacios ni caracteres ascii entre 32 y 47, en este ejemplo que pondre:


CREATE FUNCTION OK
(CADENA VARCHAR(10))
RETURNS INTEGER
BEGIN

DECLARE LONG_CAD INT;
DECLARE CARASC INT;
DECLARE i INT DEFAULT 1 ;
DECLARE B INT DEFAULT 1;
declare C int;


SET LONG_CAD=LENGTH(CADENA);

IF LONG_CAD=1 OR LONG_CAD=0 THEN

SET B=0;



ELSEIF LONG_CAD>1 THEN


WHILE (i<=LONG_CAD AND B=1) DO

SET CARASC=ASCII(SUBSTR(CADENA,I,1));


SELECT CARASC BETWEEN 32 AND 47 INTO C;

IF C=0 THEN

SET i=i+1;
SET B=1;

ELSEIF C=1 THEN

SET B=0;

END IF;


END WHILE;


END IF;


RETURN B;
END;

Ahora el procedure que llamara a la funcion para validar :


CREATE PROCEDURE OKPRUEBA
(IN CADENA VARCHAR(10),IN DESCRIP VARCHAR(30))

BEGIN


IF OK(CADENA)=1 THEN

INSERT INTO PRUEBA VALUES(CADENA,DESCRIP);
SELECT 'ROW INSERTED OK' AS RESULTADO;

ELSEIF OK(CADENA)=0 THEN

SELECT 'EL CAMPO CLAVE CONTIENE CARACTERES NO VALIDOS' AS ERROR;

END IF;


END;

Etiquetas: fecha, pc
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:47.