[C con Clase] class fecha
wolf
wolverine_ch en hotmail.com
Jue Feb 24 21:56:09 CET 2011
entiendo lo del time no lo habia tomado en cuenta ya que no se mucho de esta libreria , bueno en el caso de que yo trabajara con el time.h hasta donde yo se esta libreria solo funciona para fechas y horas "actuales" y mi clase se supone que tiene una fecha determinada por el usuario , como lo relacionaria con time me podrian explicar?
lo que tengo por el momento son las validaciones para los meses y para determinar si el año es bisiesto miren:
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
int dias_de_cada_mes[12] = {31,29,31,30,31,30,31,31,30,31,30,31}; //vector q contiene los dias de cada mes
int esbisiesto(int anio)
{
if((a%4==0) && ((a%100!=0)||(a%400==0)))
return 1;
else
return 0
}
/*un año es bisiesto si es divisible por 4,
excepto el último de cada siglo (aquellos divisibles por 100),
que para ser bisiestos, también deben ser divisibles por 400.*/
class fecha{
int dia;
int mes;
long int anio;
public:
fecha(){ dia=1;mes=1;anio=1900;}//constructor
void lee();
void presenta();
void setdia(int d){
dia = d;
}
void setmes(int m){
mes = m;
void setanio(int a){
anio=a;
}
int getdia(){return dia;}
int getmes(){return mes ;}
int getanio(){return anio;}
int validafecha( int , int, int );
fecha::sumadias(int dias) //sin implementar
};
int fecha::validafecha( int dd, int mm, int aa)
{
if(dd<=0||dd>31) return 0;
if(mm<=0||mm>12) return 0;
if(mm==2 && dd>29) return 0; //para febrero
if(aa<=1900) return 0;
if(dias_de_cada_mes[mm-1]<dd) return 0;//para los meses que tienen 30 dias
if(m==2 && d==29 && !esbisiesto(aa)) return 0;//para feb:"si ingreso el dia 29 ,el año que ingrese tiene que ser bisiesto"
return 1;
}
void fecha::lee(){
do{
cout<<"\n Registro de fecha\n\n";
cout<<"Ingrese dia\n";
cin>>dia;
cout<<"Ingrese mes\n";
cin>>mes;
cout<<"Ingrese anio\n";
cin>>anio;
} while(validafecha(dia,mes,anio)!=1);
}
void fecha::presenta(){
cout<<"\n Mostrando fecha "<<"\n\n";
cout<<"Dia: "<<dia<<"\n\n";
cout<<"Mes : "<<mes<<"\n\n";
cout<<"Anio : "<<anio<<"\n\n";
}
que me proponen ....
saludos
Más información sobre la lista de distribución Cconclase