first commit
This commit is contained in:
248
SOLAIRE_TRACKER/Date_heure.cpp
Normal file
248
SOLAIRE_TRACKER/Date_heure.cpp
Normal file
@@ -0,0 +1,248 @@
|
||||
|
||||
|
||||
#include "Date_heure.h"
|
||||
#include <Arduino.h>
|
||||
|
||||
//tableau de char pour la gestion des jour par mois
|
||||
int jParM[12]={31,28,31,30,31,30,31,31,30,31,30,31};
|
||||
|
||||
|
||||
/*_____________________________________________fonction validation minute____________________________*/
|
||||
int VAL_MINUTE(int MINUTE)
|
||||
{
|
||||
if (MINUTE>59){
|
||||
MINUTE=0;
|
||||
};
|
||||
if (MINUTE<0){
|
||||
MINUTE=59;
|
||||
};
|
||||
return MINUTE;
|
||||
}
|
||||
/*_____________________________________________fonction validation heure____________________________*/
|
||||
int VAL_HEURE(int HEURE)
|
||||
{
|
||||
if (HEURE>23){
|
||||
HEURE=0;
|
||||
};
|
||||
if (HEURE<0){
|
||||
HEURE=23;
|
||||
};
|
||||
return HEURE;
|
||||
}
|
||||
/*_____________________________________________fonction validation mois____________________________*/
|
||||
int VAL_MOIS(int MOIS)
|
||||
{
|
||||
if (MOIS>12){
|
||||
MOIS=1;
|
||||
};
|
||||
if (MOIS<1){
|
||||
MOIS=12;
|
||||
};
|
||||
return MOIS;
|
||||
}
|
||||
/*_____________________________________________fonction validation annee____________________________*/
|
||||
int VAL_ANNEE(int ANNEE)
|
||||
{
|
||||
if (ANNEE>2100){
|
||||
ANNEE=2012;
|
||||
};
|
||||
if (ANNEE<1){
|
||||
ANNEE=2012;
|
||||
};
|
||||
return ANNEE;
|
||||
}
|
||||
/*_____________________________________________fonction validation jour____________________________*/
|
||||
|
||||
int VAL_JOUR(int JOUR, int MOIS, int ANNEE)
|
||||
{
|
||||
if (MOIS==1||MOIS==3||MOIS==5||MOIS==7||MOIS==8||MOIS==10||MOIS==12){
|
||||
if (JOUR<1){
|
||||
JOUR=31;
|
||||
};
|
||||
if (JOUR>31){
|
||||
JOUR=1;
|
||||
};
|
||||
};
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
if (MOIS==4||MOIS==6||MOIS==9||MOIS==11){
|
||||
if (JOUR<1){
|
||||
JOUR=30;
|
||||
};
|
||||
if (JOUR>30){
|
||||
JOUR=1;
|
||||
};
|
||||
};
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
if (MOIS==2&&bisex(ANNEE)==true){
|
||||
if (JOUR<1){
|
||||
JOUR=29;
|
||||
};
|
||||
if (JOUR>29){
|
||||
JOUR=1;
|
||||
};
|
||||
};
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
if (MOIS==2&&bisex(ANNEE)==false){
|
||||
if (JOUR<1){
|
||||
JOUR=28;
|
||||
};
|
||||
if (JOUR>28){
|
||||
JOUR=1;
|
||||
};
|
||||
};
|
||||
|
||||
return JOUR;
|
||||
}
|
||||
bool bisex(int annee){
|
||||
//ce qui suit permet de determiner si l'annéee et bisextile renvoi vrai ou faux
|
||||
int r1;
|
||||
if(annee%400==0){
|
||||
r1=1;
|
||||
}
|
||||
else{
|
||||
r1=0;
|
||||
};
|
||||
int r2;
|
||||
if(annee%100==0){
|
||||
r2=1;
|
||||
}
|
||||
else{
|
||||
r2=0;
|
||||
};
|
||||
int r3;
|
||||
if(annee%4==0){
|
||||
r3=1;
|
||||
}
|
||||
else{
|
||||
r3=0;
|
||||
};
|
||||
int reponse;
|
||||
if(r1-r2+r3==1){
|
||||
reponse=true;
|
||||
}
|
||||
else{
|
||||
reponse=false;
|
||||
};
|
||||
|
||||
return reponse;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*_____________________________________________fonction evenement____________________________*/
|
||||
|
||||
boolean Evenement(Date*date_1,Date*date){
|
||||
boolean reponse=false;
|
||||
|
||||
if( (date->a-date_1->a)==0 && (date->m-date_1->m)==0 &&(date->j-date_1->j)>=0){
|
||||
reponse=true;//Serial.println(" 1 Vrai");
|
||||
}else if((date->a-date_1->a)==0 && (date->m-date_1->m)>=0){
|
||||
reponse=true;//Serial.println(" 2 Vrai");
|
||||
}
|
||||
else if((date->a-date_1->a)>0){
|
||||
reponse=true;//Serial.println(" 3 Vrai");
|
||||
}else{//Serial.println(" faux");
|
||||
}
|
||||
|
||||
return reponse;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*_____________________________________________fonction evenement____________________________*/
|
||||
|
||||
boolean Evenement(int j_1,int m_1,int a_1,int j,int m,int a){
|
||||
boolean reponse=false;
|
||||
|
||||
if( (a-a_1)==0 && (m-m_1)==0 &&(j-j_1)>=0){
|
||||
reponse=true;//Serial.println(" 1 Vrai");
|
||||
}else if((a-a_1)==0 && (m-m_1)>=0){
|
||||
reponse=true;//Serial.println(" 2 Vrai");
|
||||
}
|
||||
else if((a-a_1)>0){
|
||||
reponse=true;//Serial.println(" 3 Vrai");
|
||||
}else{//Serial.println(" faux");
|
||||
}
|
||||
|
||||
return reponse;
|
||||
}
|
||||
|
||||
/*_____________________________________________fonction evenement____________________________*/
|
||||
|
||||
boolean Evenement(int j_1,int m_1,int a_1,Date*date){
|
||||
boolean reponse=false;
|
||||
|
||||
|
||||
if( (date->a-a_1)==0 && (date->m-m_1)==0 &&(date->j-j_1)>=0){
|
||||
reponse=true;//Serial.println(" 1 Vrai");
|
||||
}else if((date->a-a_1)==0 && (date->m-m_1)>=0){
|
||||
reponse=true;//Serial.println(" 2 Vrai");
|
||||
}
|
||||
else if((date->a-a_1)>0){
|
||||
reponse=true;//Serial.println(" 3 Vrai");
|
||||
}else{//Serial.println(" faux");
|
||||
}
|
||||
|
||||
return reponse;
|
||||
}
|
||||
|
||||
/*_____________________________________________fonction evenement____________________________*/
|
||||
boolean Momment(int heure, int minute, int seconde ,Heure*Hrtc){
|
||||
boolean reponse=false;
|
||||
|
||||
if( (Hrtc->h-heure)==0 && (Hrtc->m-minute)==0 &&(Hrtc->s-seconde)>=0){
|
||||
reponse=true;
|
||||
}
|
||||
if( (Hrtc->h-heure)==0 && (Hrtc->m-minute)>=0){
|
||||
reponse=true;
|
||||
}
|
||||
if((Hrtc->h-heure)>0){
|
||||
reponse=true;
|
||||
}
|
||||
#ifdef DEBUG_SERIAL
|
||||
if (reponse==true){
|
||||
Serial.println(F("Momment OK"));
|
||||
}
|
||||
else{
|
||||
Serial.println(F(" Momment pas OK"));
|
||||
};
|
||||
#endif
|
||||
return reponse;
|
||||
}
|
||||
|
||||
|
||||
/*_____________________________________________fonction evenement____________________________*/
|
||||
boolean Momment(Heure*heure_T,Heure*heure){
|
||||
boolean reponse=false;
|
||||
|
||||
if( (heure->h-heure_T->h)==0 && (heure->m-heure_T->m)==0 &&(heure->s-heure_T->s)>=0){
|
||||
reponse=true;
|
||||
}
|
||||
if( (heure->h-heure_T->h)==0 && (heure->m-heure_T->m)>=0){
|
||||
reponse=true;
|
||||
}
|
||||
if((heure->h-heure_T->h)>0){
|
||||
reponse=true;
|
||||
}
|
||||
#ifdef DEBUG_SERIAL
|
||||
if (reponse==true){
|
||||
Serial.println(F("Momment OK"));
|
||||
}
|
||||
else{
|
||||
Serial.println(F(" Momment pas OK"));
|
||||
};
|
||||
#endif
|
||||
return reponse;
|
||||
}
|
||||
/*_____________________________________________fonction convertion de long heur en heur minute seconde____________________________*/
|
||||
void convertHeur(long *h,int *heure, int *minute,int *seconde){
|
||||
|
||||
*heure=(*h/3600);//heure entiere
|
||||
*minute=(*h/60)-((*heure)*60);// les minute entiere
|
||||
*seconde=*h-((*minute)*60)-(((*heure)*60)); //les seconde entiere
|
||||
|
||||
return;
|
||||
}
|
||||
Reference in New Issue
Block a user