La Web del Programador: Comunidad de Programadores
 
    Pregunta:  12401 - CONVERSION DE JULIANO A GREGORIANO O VICEVERSA(EN C)
Autor:  Adriana Cabral
Hola, espero que alguien pueda resolver mi problema. Necesito realizar una funciĆ³n que me convierta la fecha actual en juliana (formato internacional, o lo contrario que me convierta una fecha juliana en fecha gregoriana, me urge espero que alguien sepa como se hace.
gracias

  Respuesta:  Elena
Hola:

Para jugar con las fechas utiliza las funciones mktime, getdate y strftime. Si la fecha te viene dada en un string, usa tambien la funcion
putenv donde indicas el fichero donde se encuentran todos los formatos de fecha que tiene que reconocer. Te paso un ejemplo
para crear una fecha del tipo 21-02-2001 ( y almacenarla en una variable string) y me dan un string del tipo 21/01/01

Tengo mi fichero C:\fechas.txt que contiene:

%d-%m-%Y
%d/%m/%y

y el programa seria:

#include <time.h>

char fecha_dada[128];
char fecha_cambiada[128];
time_t fecha;

strcpy(fecha_dada,"21/21/01"); //fecha que me pasan
putenv ("DATEMSK=c:\fechas.txt"); //pongo la variable de entorno que apunte al fichero donde estan los formatos de fechas

fecha=mktime(getdate (fecha_dada)); //construyo la variable fecha con la que me dieron
strftime (fecha_cambiada,16,"%d-%m-%Y",fecha); //en fecha cambiada, almaceno el string con el nuevo formato

Espero que te haya servido de ayuda. Te recomiendo mirar la libreria time.h, donde hay muchas funciones relativas a fechas.