Je suis en 2065 !!!

  • Auteur de la discussion andre.gerald
  • Date de début

andre.gerald

Grand VidéaVizir
Petit programme en VB6 dont vous verrez le code:
voila ce qu'il m'affiche:
où il me prend cette p..de date ..Mystère
pas dans le bios car ça varie
dernier lancement j'étais en Juillet 2070 :D
le chrono marche très bien au centième
La date de windows est bien actuelle
Pas compris ???
et le nombre total de secondes affiché par timer ?? il ne correspond à rien ...
Bizzare
OK le VB6 est dépassé mais c'est pas une raison .
Vous devez être connecté pour voir les pièces jointes.
 
Dernière édition:

magellan

Modérâleur
Staff
On peut procéder de deux manières
- Lancer le soft, créer une var de départ (startTime) et une autre de fin (EndTime) puis faire une soustraction
OU
- utiliser un objet qu'on démarre/arrête.

Là où j'ai un énorme doute, c'est sur le format. de mémoire les crhronos s'adossent à de la milliseconde (en général), et les dates tu as deux formats: soit le format "jj/mm/aaaa" ou bien un timestamp qui commence à 0 au...01/01/1970. Ensuite le calcul pour une date/heure précise est une conversion de timestamp à destination d'un format date (date time formaté)

Je serais toi:
- Afficher la valeur concrète de chaque variable sans conversion
- Déclarer les variables avec un format fixé au préalable

ton formatage semble être décalé soit en prenant les dixièmes en compte "en trop" ou s'il manque les milisecondes. Je ne me souviens plus du format exact en vb6 je suis affreusement rouillé. Quoi qu'il en soit, édite en String pur et dur la sortie de tes variables de chrono/date heure pour contrôler ce que cela te sort "réellement". M'est avis que c'est ton formatage qui te fait des misères. Typiquement attaque par un Str() direct de tes variables pour contrôler la fréquence d'incrémentation. il est même possible que cette connerie de date/heure soit formatée à l'anglaise.

Si ma mémoire ne me joue pas des tours, tu peux théoriquement formater un Timer directement en String via une config du Str()
 

andre.gerald

Grand VidéaVizir
@magellan :hello:
merci pour ta réponse !!
Le chrono marche nickel
Label2.Caption = Str(minute) + "mn" + Str(Int(seconde)) + "s" + Str(dizième) '+ " centièmes"
j'ai écrit Str(dizième)
Mais :
dizième = seconde - Int(seconde): dizième = dizième * 100: dizième = Int(dizième)

En multipliant par 10 tu obtiens un chrono au dixième
En multipliant par 100 au centième

là n'est pas le soucis
l'affichage de la date fantaisiste n'a pas de rapport avec le chrono.
Bizzare !!!
même l'affichage du timer en bas ça correspond à que dalle
Bizarre aussi
Ok ça empèche pas le programme de fonctionner ...
mais si je voulais afficher la date et l'heure exacte oui
 

andre.gerald

Grand VidéaVizir
Si j'écris temps = 45046 au lieu de temps=timer
là j'ai 30 04 2023
c'est pas mal ça j'arrive à être le 31 12 1899 :D:D:D
si j'écris temps=1
 

andre.gerald

Grand VidéaVizir
Bingo j'ai trouvé :
c'est tout simple il faut écrire
temps = Time()>>>> affiche l'heure actuelle
temps = Date >>> affiche la date du jour actuel
Google m'a pas vraiment aidé sur ce coup
Quant à timer il affiche le nombre de seconde depuis 0 heure ce qui est logique
 

magellan

Modérâleur
Staff
Bingo j'ai trouvé :
c'est tout simple il faut écrire
temps = Time()>>>> affiche l'heure actuelle
temps = Date >>> affiche la date du jour actuel
Google m'a pas vraiment aidé sur ce coup
Quant à timer il affiche le nombre de seconde depuis 0 heure ce qui est logique
Ah oui... ça me revient. Tu détermines le type de date/heure selon la déclaration.

Je n'aurais pas fait l'erreur à l'époque, là, la rouille m'a totalement bloqué. Je me fais l'effet d'une vieille machine qui n'a pas tournée depuis des années.

note ceci... tous les langages sont une plaie concernant cette gestion. Si tu es en C, ce n'est pas pareil qu'en Java, ou encore en Js... que du "bonheur".
 

andre.gerald

Grand VidéaVizir
En quelque sorte je maitrise le temps ...P...J'aimerais bien
Merci pour ta participation @magellan ;)
en fait Time() et Date sont des "variables sytème qu'on ne déclare pas" qui peuvent être affectés à n'importe quelle variable déclarées en chaine de caractères .
Pas la peine de mettre ça dans une variable déclaré en Date.
:hello:
Il est pas mal foutu ce VB6 (y) mais bien sûr il n'intègre aucune fonction internet :(
 

andre.gerald

Grand VidéaVizir
Du coup j'ai inventé la machine à remonter le temps :D
Vous devez être connecté pour voir les medias.
Très vite fait car ça tient à 5 lignes de code où y a que le chiffre à modifier :
For z = 45040 To 1 Step -1
test = z
DoEvents: Label9.Caption = Str(test): DoEvents
pause (0.005)

Next z
la c'est pour de 2023 à 1900 plus loin impossible
NON on peut aller jusqu'à Vercingétorix si on veut :lol: :lol: ..Faut passer en négatif !
Mais on n'aura pas d'image :confused: :confused:
Bref une bizarrerie qui peut peut être servir dans certains clips
 

magellan

Modérâleur
Staff
Du coup j'ai inventé la machine à remonter le temps :D
Vous devez être connecté pour voir les medias.
Très vite fait car ça tient à 5 lignes de code où y a que le chiffre à modifier :
For z = 45040 To 1 Step -1
test = z
DoEvents: Label9.Caption = Str(test): DoEvents
pause (0.005)

Next z
la c'est pour de 2023 à 1900 plus loin impossible
NON on peut aller jusqu'à Vercingétorix si on veut :lol::lol: ..Faut passer en négatif !
Mais on n'aura pas d'image :confused::confused:
Bref une bizarrerie qui peut peut être servir dans certains clips
Tu pourrais, pour t'amuser, ajouter une voire deux boucles imbriquées où tu multiplies par trois (ou plus) toutes les cinq secondes ton décompte. Cela ferait un superbe effet façon "générique de Buck Rogers"
Vous devez être connecté pour voir les medias.
 

magellan

Modérâleur
Staff
En quelque sorte je maitrise le temps ...P...J'aimerais bien
Merci pour ta participation @magellan ;)
en fait Time() et Date sont des "variables sytème qu'on ne déclare pas" qui peuvent être affectés à n'importe quelle variable déclarées en chaine de caractères .
Pas la peine de mettre ça dans une variable déclaré en Date.
:hello:
Il est pas mal foutu ce VB6 (y) mais bien sûr il n'intègre aucune fonction internet :(
Et pour ce qui est des fonctions interner, théoriquement tu pourrais le faire en ouvrant des sockets. VB6 sait le faire (je l'ai fait pour faire du transfert client/serveur).
De là, ça n'est pas simple car je ne crois pas qu'il y ait effectivement des adds aussi performants que sur les langages plus récents.

j'ai trouvé cette vidéo:
Vous devez être connecté pour voir les medias.

De là... oui VB6 était bon à une exception fondamentale (et pénible): l'absence de vraie gestion de thread.
Si je schématise: (en caricaturant)
- Sub(): pas de possibilité d'en multiplier les exécutions (monothread)
- Function(): qui peut être appelée plusieurs fois pour paralléliser.
C'est faisable, mais cela requiert de se taper manuellement toutes les phases d'attentes et la gestion de retour des différentes exécutions lancées... et ça peut vite devenir infernal.
 

andre.gerald

Grand VidéaVizir
Salut @magellan
VB6 dans ma version utilise un seul thread c'est vrai
Mon chrono sans mes élucubrations temporelles prend 1% d'occupation cpu
Mais c'est plus un avantage pour moi, car il me sert pour mesurer les temps d'exports, suivant les options d'encodage choisis sans que le temps encodage soit impacté par son déroulement ;)
avec un seul thread et 4 % du 3900X utilisé il calcule tout de même 500 000 000 de racines carrés en double en 1.4s
ce qui mettrait le 3900x à plus de 7 Giga Flots en double précision sur des racines (y)
Dim x1 As Double
Dim x2 As Double
Dim x3 As Double
Dim n As Long
Dim nc As Long
Dim t As Double

t = Timer
For n = 1 To nc
x1 = Sqr(n)
Next n
t = Timer - t
 

SergioVE

Tout à faire car rien n'est fait.
Ah ce changement de calendrier...
C'est un truc presqu'ingérable : très peu de pays ont adopté le nouveau calendrier à la même date, avec parfois des aménagements des plus tordus comme en Suède.
Je ne sais pas aujourd'hui, mais les premiers Mac avaient pour origine des temps le 1er janvier 1904, uniquement pour éviter de s'embêter avec l'année 1900 non bissextile.
Excel dans ses options avait une cache à cocher pour choisir 1900 ou 1904 ce qui permettait de récupérer les fichiers d'un OS à l'autre...
 

magellan

Modérâleur
Staff
C'est un truc presqu'ingérable : très peu de pays ont adopté le nouveau calendrier à la même date, avec parfois des aménagements des plus tordus comme en Suède.
Je ne sais pas aujourd'hui, mais les premiers Mac avaient pour origine des temps le 1er janvier 1904, uniquement pour éviter de s'embêter avec l'année 1900 non bissextile.
Excel dans ses options avait une cache à cocher pour choisir 1900 ou 1904 ce qui permettait de récupérer les fichiers d'un OS à l'autre...
Je le sais que trop bien. Le "fun" de gérer la date minimale chez ms avec le jeudi noir comme référence, le timestamp s'adossant au 01/01/1970.... de quoi y perdre tout sens commun
 

andre.gerald

Grand VidéaVizir
ça te situe un peu l'ambiance du Repaire ...Mais y a quelques sympas aussi !
Les plus sympas ont carrément quitté le forum en demandant leur désinscription.
C'est triste !
c'est une toute autre ambiance ici (y)
 

andre.gerald

Grand VidéaVizir
Bien etrange cette fonction du VB6
avec décimale ça donne ça :
Vous devez être connecté pour voir les pièces jointes.


curieux non ?
Mais logique qu'avec ,5 je sois à la mi journée
Sans décimale y a que les jours comme à gauche
les années bissextiles sont prise en compte
J'ai testé pour 2000 :)
Je rappelle que test est déclaré come variable Date
j'ai écrit
Label9.Caption = str(test)
Mais on peut directement écrire
Label9.Caption =test

Vrai que je fais office de dinosaure avec ce VB6 qui date du 20ème siècle je crois :lol:
mon fils me l'avait passer ainsi que le C++ quand il programmait en freelance à la sortie de son école Ingénieur
fin 20ème je pense
je m'en sers juste pour maintenir mes vieux neurones en état.
 
Dernière édition:
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 058
Membres
1 586 285
Dernier membre
LeFront
Partager cette page
Haut