1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
procedure TForm1.Button1Click(Sender: TObject);
//Déclaration des différentes variables
var HeuresSaisie,MinuteSaisie,HeureConvertie:Integer;
begin
{On vient récupérer les informations saisies dans le TMaskEdit}
HeuresSaisie:=StrToInt(Copy(MaskEdit1.Text,1,2));//Copy 2 caractères à partir du caractère 1
//Donc on prend les HEURES
MinuteSaisie:=StrToInt(Copy(MaskEdit1.Text,4,2));//Copy 2 caractères à partir du caractère 4
//Donc on prend les Minutes
HeureConvertie:= (HeuresSaisie*60+MinuteSaisie); //Calcul des heures en Minutes
Edit1.Text:=IntToStr(HeureConvertie); //Affichage du résultat dans Edit1.text
{Si tu veux insérer ce nombre dans ta bdd, il te suffit d'utiliser la variable ''HeureConvertie''
qui est en Integer}
end;
procedure TForm1.Button2Click(Sender: TObject);
var NombreAConvertir,PositionVirgule,TailleHeure:Integer;
TransformationMinutesEnHeures,ChiffreApresVirgule,MinutesConvertie:Real;
begin
{NombreAConvertir Correspond au chiffre de ta bdd}
NombreAConvertir:=StrToInt(Edit2.Text);//Convertion du Contenu du TEdit en Integer.
{Ici, on vient Convertir le Nombre de ta base en Heure}
TransformationMinutesEnHeures:= (NombreAConvertir/60);
{On vient compter la longeur du chiffre qui est contenu
dans la variable TransformationMinutesEnHeures}
TailleHeure:=Length(FloatToStr(TransformationMinutesEnHeures));
{On Vient Compter en quel position ce trouve la Virgule du chiffre
Qui est contenu dans la même variable}
PositionVirgule:=Pos(',',FloatToStr(TransformationMinutesEnHeures));
{On vient Maintenant Prendre Tout les chiffres qui sont après la virgule
et qui coresponde donc au Minute Mais au format Heure Exemple : 1,25 Heure donne 1H15minute}
ChiffreApresVirgule:=StrToFloat(Copy(FloatToStr(TransformationMinutesEnHeures),PositionVirgule,TailleHeure-(PositionVirgule-1)));
{On Convertit Donc Nom Minute "Heure" en véritable Minutes"}
MinutesConvertie:=SimpleRoundTo((chiffreApresVirgule*60),0);
{On vient Vérifier la présence d'une virgule en Utilisant le
résultat de la variable PositionVirgule, si PositionVirgule=0 ça
veut dir qu'il n'y à pas de virgule}
If PositionVirgule>0 then begin
{On vient Compter combien de chiffre nous avons pour les Heures
SI on à Un seul chiffre, il faut penser à ajouter le 0 devant exemple :
7H = 07H}
if Length(Copy(FloatToStr(TransformationMinutesEnHeures),1,PositionVirgule))-1=1 then begin
{Ajout d'un 0, puis ajout du chiffre qui est avant
la virgule, Ajout du séparateur ':' puis ajout des minutes converties}
MaskEdit3.Text:='0'+(Copy(FloatToStr(TransformationMinutesEnHeures),1,PositionVirgule-1))+':'+FloatToStr(MinutesConvertie);
end
else begin
{Si Nous avons deux chiffres, avant la virgule, Nous
Ajouton Tout les chiffres qui sont avant la virgule
grace à Copy(), Puis on ajoute le séparateur ':'
Puis on fini par ajouter les minutes}
MaskEdit3.Text:=Copy(FloatToStr(TransformationMinutesEnHeures),1,PositionVirgule-1)+':'+FloatToStr(MinutesConvertie);
end
end
{Si nous n'avons pas de virgule, nous ajouton donc le chiffre Unique}
Else Begin
{On vient Compter combien de chiffre nous avons pour les Heures
Si on à qu'un seul chiffre, on vient Ajouter un 0 devant les heures
et on vient rajouter les 00 pour les minutes}
if Length (FloatToStr(TransformationMinutesEnHeures))=1 then begin
MaskEdit3.Text:='0'+FloatToStr(TransformationMinutesEnHeures)+':'+'00';
end
else begin
{Si On à Deux chiffres ou plus,Nous
Ajouton Tout les chiffres qui sont avant la virgule
Comme precedement}
MaskEdit3.Text:=FloatToStr(TransformationMinutesEnHeures)+':'+'00';
end;
end;
end; |
Partager