2010-05-31 6 views

Répondre

3

Package Ada.Real_time ne fournit pas une méthode pour le format direct.

Je vous conseille de regarder Ada.Calendar.Formatting. Vous avez une méthode Clock comme dans Ada.Real_time. En effet, il existe une méthode Image (parameters: Time), qui retourne une chaîne.

Pour plus de détails: Package: Ada.Calendar.Formatting

+0

Enfin, nous avons utilisé Ada.Calendar.Formatting au lieu de 'Ada.Real_Time.Clock' – Natim

3

appeler la fonction Ada.Real_Time.Split(), qui convertit un temps à un SECONDS_COUNT et un Time_Span. La valeur Seconds_Count est le nombre de secondes écoulées depuis l'époque, et la valeur Time_Span est le nombre de (très petites) Time_Units après cette dernière seconde. Voir D.8 Monotonic Time (29) pour plus de détails. Seconds_Count est publiquement visible dans le package, et le Time_Span peut être converti en une durée via To_Duration().

Notez que vous pouvez inverser le processus et utiliser Time_Of() pour reconstruire une valeur Time.

5

Vous pouvez utiliser Ada.Real_Time.Split pour convertir un en Ada.Real_Time.Time (a) le nombre de secondes écoulées depuis l'époque, le type Ada.Real_Time.Seconds_Count et (b) la partie décimale, le type (privé) Ada.Real_Time.Time_Span; et vous pouvez utiliser Ada.Real_Time.To_Duration pour convertir la partie fractionnelle en Duration. Vous pouvez ensuite utiliser Ada.Real_Time.Seconds_Count'Image et Duration'Image pour convertir String.

Mais à quoi voulez-vous la chaîne? Si c'est pour comparer quand les choses se sont passées en une seule fois, c'est bien, mais il n'y a rien dans la définition de la langue pour dire quand l'époque était; ce peut être l'heure du dernier démarrage de l'ordinateur, par exemple.

2

Si vous ne avez pas besoin texte lisible, mais juste voulez enregistrer dans un fichier, vous pouvez essayer d'utiliser l'attribut de sortie de flux ('Write)