Aller au contenu

Messages recommandés

Posté(e)

Bonjour à toutes et à tous,

 

voici 3 variables système DATE format julienne (Modifvar ?) !!!

 

DATE ............... 2453432.37640876 (lecture seule)

TDUPDATE...... 2453432.37575574 (lecture seule)

TDUUPDATE... 2453432.33408908 (lecture seule)

 

Quelqu'un aurait la formule de conversion en date et heure classique ?

 

Merci de vos réponses

 

Christian

 

[Edité le 2/3/2005 par rebcao]

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

Posté(e)

hello, l'Alsacien,

c'est en Heure Locale,

j'espère que ça va fonctionner chez Toi ;)

 

 

(setq aujour (strcat (substr (rtos (getvar "cdate")2 0) 7 2) "/"

(substr (rtos (getvar "cdate") 2 0) 5 2) "/"

(substr (rtos (getvar "cdate") 2 0) 1 4 )))

 

(setq aa (rtos(getvar "cdate")2 8))

(setq jour (substr (rtos (getvar "cdate")2 0) 7 2))

(setq mois (substr (rtos (getvar "cdate") 2 0) 5 2))

(setq annee (substr (rtos (getvar "cdate") 2 0) 1 4 ))

(setq heure (atoi (substr (rtos (getvar "cdate") 2 8) 10 2)))

(setq minute (atoi(substr (rtos (getvar "cdate") 2 8) 12 2 )))

(setq seconde (atoi(substr (rtos (getvar "cdate") 2 8) 14 2 )))

 

amicalement

Posté(e)

Bonjour,

 

à une époque que je vais qualifier de lointaine,

j'ai proposé en Téléchargement un dessin de pendule

dont les aiguilles bougeaient en temps réel,

je ne sais pas ce qu'il est devenu, car je ne le vois plus proposé :(

 

si quelqu'un est intéressé, dîtes-le

 

amicalement

Posté(e)

En DIESEL on peut utiliser cette syntaxe :

 

$m=$(edtime, $(getvar,TDUPDATE),DDD"," DD MON YYYY - H:MMam/pm)

 

mais le DIESEL ne fonctionne pas dans un SCRIPT...!!! :mad:

 

je sais pas quoi faire ? me jetter dans le premier canal que je croise... :P :casstet: ou alors me créer une icône et cliquer à chaque fois, il n'y a que 850 dessins à traiter... :mad: :( :P :casstet:

 

Christian

 

[Edité le 2/3/2005 par rebcao]

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

Posté(e)

 (setq jour (menucmd "M=$(edtime,$(getvar,DATE),DD)") 
mois (menucmd "M=$(edtime,$(getvar,DATE),MO)") 
annee (menucmd "M=$(edtime,$(getvar,DATE),YY)") 
Date (strcat jour "/" mois "/" annee)) 

 

trouvé quelque part .....

Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier

Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To

GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office

 

PlaquetteDeplianteMars2024.pdf

Invité Patrick
Posté(e)

Pour ceux qui seraient dans une version pleine, utilisez la commande JULIAN des Express Tools.

JULIAN est un programme de conversion de dates entre les dates juliennes et grégoriennes.

 

Un peu d'histoire... :cool:

 

Le nombre renvoyé par l'instruction (getvar "DATE") est le nombre de jours écoulés depuis le 1er janvier 4713 avant notre ère. La partie fractionnaire de ce nombre est la fraction décimale d'un jour julien.

 

Chaque jour de cette période, dite julienne, commence à midi à Greenwich. C'est une façon de compter le temps extrêmement pratique puisqu'elle ne dépend pas des nombreux calendriers (grégoriens, juliens, israélite, lunaire, solaire, musulman...etc).

 

Pourquoi compte-on à partir du 1er janvier 4713 avant JC?

 

Cette date est conventionnelle, elle a été déterminée au XVIem siècle par Joseph Scaliger comme origine d'une grande période de 7980 ans qui est elle même le produit de trois périodes plus petites:

 

* période de 28 ans après laquelle la distribution des jours de la semaine suivant les jours de l'année se répète

* période de 19 ans, le cycle de Méton (période de 235 mois lunaires, soit 19 ans, au bout de laquelle la pleine lune réapparaît le même jour de l'année)

* période de 15 ans appliquée par le fisc romain

 

Cette période de 7980 ans commencant le 1er janvier 4713 avant JC a été appelée par Joseph Scaliger période julienne, du nom de son père Jules (et pas du tout du nom de l'autre Jules, le grand Jules, Jules César, celui d'Astérix).

Posté(e)

hello

 

je vais me permettre un complément d'information,

 

D'accord pour l'origine de la datation,

en revanche, il ne faut pas perdre de vue que l'adjectif Julien

vient de Jules César, qui en l'an 38 avant JC (Jésus Christ, pas Jacques Chirac)

a adopté une grande réforme.

le tout fût mis à jour en Octobre 1582 par le pape Grégoire XIII

qui a décidé de supprimer les dix jours suivant le 4 octobre 1582

pour rectifier une bonne fois pour toutes les erreurs du calendrier antérieur

et donc créer le calendier Grégorien ,

qu'on utilise encore de nos jours.

 

voilà mon grain de sel ;)

 

amicalement

  • 1 an après...
Posté(e)

Repiqué chez adolisp :

 

 (defun @Macro_julian (JulianDate / a b c d e y z
                                 Month Day Year Hours Minutes
                                 Seconds CalenderTime NoTime
                                 NoDate ReturnValue
                                )
 ;; Initialize the return value
 (setq ReturnValue "")
 ;; If the input date has no time component ...
 (if (equal 0.0
            (float (- JulianDate (float (fix JulianDate))))
            1E-9
     )
   ;; It has no time component ... if it has no date
   ;; component ...
   (if (zerop (fix JulianDate))
     ;; It must be a timestamp of 0:00.00.  Set the flag that
     ;; we don't have a date but leave the "No Time" flag
     ;; unset
     (setq NoDate T)
     ;; It has a date component but has no time component.
     ;; Shift the date to a real Julian date
     (setq JulianDate (+ 2415019 (fix JulianDate))
           ;; Set a flag so we know we don't have to
           ;; calculate the time
           NoTime     T
     )
   )
   ;; It has a time component.  If it has no date component
   ;; ...
   (if (zerop (fix JulianDate))
     ;; Set a flag so we know we don't want to calculate a
     ;; date
     (setq NoDate T)
     ;; Otherwise, just shift it to be based like a standard
     ;; Julian date
     (setq JulianDate (+ 2415019 JulianDate))
   )
 )
 ;; If we want to calculate the date ...
 (if (not NoDate)
   ;; It's magic, don't even ask (because I don't know).
   ;; Some things we weren't meant to know.
   (setq z           (fix JulianDate)
         a           (fix (/ (- z 1867216.25) 36524.25))
         a           (+ z 1 a (- (fix (/ a 4))))
         b           (+ a 1524)
         c           (fix (/ (- b 122.1) 365.25))
         d           (floor (* 365.25 c))
         e           (fix (/ (- b d) 30.6001))
         Day         (fix (- b d (floor (* 30.6001 e))))
         e           (- e
                        (if (< e 14)
                          2
                          14
                        )
                     )
         Month       (1+ e)
         Year        (if (> e 1)
                       (- c 4716)
                       (- c 4715)
                     )
         Year        (if (= Year 0)
                       (1- Year)
                       Year
                     )
         ;; This uses US format for the date, you might want
         ;; to change it.
         ReturnValue (strcat (itoa Year)
		      (if (< Month 10)
                               (strcat "0" (itoa Month))
                               (itoa Month)
                             )
                             ""
                             (if (< Day 10)
                               (strcat "0" (itoa Day))
                               (itoa Day)
                             )
                             "" 
                     )
   )
 )
 ;; If we want to calculate the time ...
 (if (not NoTime)
   ;; First strip the date portion from the input
   (setq y            (- JulianDate (float (fix JulianDate)))
         ;; Round to the nearest second
         y            (/ (float (fix (+ 0.5 (* y 86400.0)))) 86400.0)
         ;; Number of hours since midnight
         Hours        (fix (* y 24))
         ;; Number of minutes since midnight the hour
         ;; (1440 minutes per day)
         Minutes      (fix (- (* y 1440.0) (* Hours 60.0)))
         ;; Number of seconds since the minute (86400
         ;; seconds per day)
         Seconds      (fix (- (* y 86400.0)
                              (* Hours 3600.0)
                              (* Minutes 60.0)
                           )
                      )
         CalenderTime (strcat (if (< Hours 10)
                                (strcat "0" (itoa Hours))
                                (itoa Hours)
                              )
                              ""
                              (if (< Minutes 10)
                                (strcat "0" (itoa Minutes))
                                (itoa Minutes)
                              )
                              ""
                              (if (< Seconds 10)
                                (strcat "0" (itoa Seconds))
                                (itoa Seconds)
                              )
                      )
         ReturnValue  (if (< 0 (strlen ReturnValue))
                        (strcat ReturnValue "" CalenderTime)
                        CalenderTime
                      )

   )
 )
 ReturnValue
)

 

Je ne sais pas pourquoi, mais ce qu'avait donné didier ne fonctionne pas avec des dates extraites avec (vlax-get objFile 'DateCreated)

ce qui donne 38979.6 ...

 

à simplifier ???? :casstet:

 

A suivre ...

  • 2 semaines après...
Posté(e)

Pour mettre les pendules à l'heure

si ça peut te servir

(defun C:HORLOGE ()

(setq amjh (rtos (getvar "cdate" ) 2 6)

ans (substr amjh 1 4)

moi (substr amjh 5 2)

jou (substr amjh 7 2)

heu (substr amjh 10 2)

min (substr amjh 12 2)

sec (substr amjh 14 2)

)

(setq mois (cond

((eq moi "01") "JANVIER" )

((eq moi "02") "FEVRIER" )

((eq moi "03") "MARS" )

((eq moi "04") "AVRIL" )

((eq moi "05") "MAI" )

((eq moi "06") "JUIN" )

((eq moi "07") "JUILLET" )

((eq moi "08") "AOUT")

((eq moi "09") "SEPTEMBRE" )

((eq moi "10") "OCTOBRE" )

((eq moi "11") "NOVEMBRE" )

((eq moi "12") "DECEMBRE" )

)

)

(prompt "\n==========================================================================")

(prompt (strcat "\n =======> "jou " " mois " " ans " ====> " heu ":" min ":" sec ))

(princ)

)

////////////////////////////////

 

Posté(e)

Pour mettre les pendules à l'heure

si ça peut te servir

 

Tu a ni plus ni moins faits que de redonner la formule de didier :cool:

 

bien essayer ...

 

Commande: (getvar "cdate" )

2.00703e+007

 

Qui n'est pas du même ordre que (vlax-get objFile 'DateCreated)

ce qui donne 38979.6 ...

 

Vois-tu le problème ???

 

:casstet: :casstet: :casstet: :casstet: :casstet: :casstet: :casstet:

 

 

Merci quand même !

 

Posté(e)

on tourne en rond ?

 

Je ferai plus simple

 

Tu peux me la refaire avec comme entrée :

 

 (defun @Macro_checksum_fichier ( $file /  $tmp #filetime #filesize)
 (if $file
   (progn
     (if (vl-file-size $file)
(progn
  (setq objWsh (vlax-create-object "Scripting.FileSystemObject"))
  (setq objFile (vlax-invoke-method objWsh 'GetFile $file))
  (strcat (@Macro_julian (vlax-get objFile 'DateLastModified))"*"(itoa (vlax-get objFile 'Size)))
  )
(progn
  (MsgBox "Erreur" 16 (strcat $file " n'existe pas !"))
  )
)
     )
   )
 )

 

(@Macro_julian) retourne la date ! :casstet:

 

????

Posté(e)

Et pourquoi ne pas utiliser (vl-file-systime ...) et (vl-file-size ...)

 

Pour une raison simple, repond nil si le fichier est ouvert !, et dans mon cas je peux avoir besoin d'ouvrir un fichier en lecture seul ou déjà ouvert .

 

Merci

A+

 

Posté(e)

En se servant de la fonction FormatDateTime du vba par exemple

 

Type de Date/Heure

0 Affiche une date et/ou une heure. En présence d'une partie de date, elle l'affiche sous forme de date abrégée. En présence d'une partie d'heure, elle l'affiche sous forme d'heure complète. Si les deux parties sont présentes, elles sont toutes deux affichées.

1 Affiche une date en utilisant le format de date complet spécifié dans les paramètres régionaux de votre ordinateur.

2 Affiche une date en utilisant le format de date abrégé spécifié dans les paramètres régionaux de l'ordinateur.

3 Affiche une heure en utilisant le format d'heure spécifié dans les paramètres régionaux de l'ordinateur.

4 Affiche une heure au format 24 heures (hh:mm).

 

La routine "magique" ;)

(defun dd (td type / users1 val)
 (vl-load-com)
 (setq users1 (getvar "users1"))
 (acad-push-dbmod)
 (vla-eval
   (vlax-get-acad-object)
   (strcat
     "ThisDrawing.SetVariable \"USERS1\","
     "FormatDateTime (\""
     td
     "\", \""
     (itoa type)
     "\")"
   )
 )
 (setq value (getvar "users1"))
 (setvar "users1" users1)
 (acad-pop-dbmod)
 val
)

 

Exemple

(dd (vl-string-translate "." "," (rtos (vlax-get objFile 'DateLastModified))) 0)

 

@+

 

ps : j'ai eu un peu de mal à le trouver celui-la, à cause du point à transformer en virgule

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité