Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Tage addieren mit VBScript

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Tage addieren mit VBScript (2109 mal gelesen)
Niggemann
Mitglied



Sehen Sie sich das Profil von Niggemann an!   Senden Sie eine Private Message an Niggemann  Schreiben Sie einen Gästebucheintrag für Niggemann

Beiträge: 159
Registriert: 31.10.2003

XP Home ACAD 2004, ACAD 2007, Office 2003, RAM 1 GB, Prozessor AMD Athlon 64 x 2 Dual Core 3800+

erstellt am: 22. Jun. 2013 22:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Forum,
ich hab mir was zusammengebastelt aus anderen Beiträgen und möchte ein Datum herausbekommen bei dem 20 Tage hinzugerechnet wurden.
(setq datum "22.06.2013")
(defun Tageaddieren ( datum / VBS ret )
  (vl-load-com)
  (setq VBS (vlax-get-or-create-object "ScriptControl"))
  (vlax-put VBS "Language" "VBScript")
  (if (= -1 (vlax-invoke VBS "EVAL" (strcat "IsDate(\"" datum "\")")))
      (setq ret (vlax-invoke VBS "EVAL" (strcat "DateAdd(\"d\", 20, \"" datum "\")" ))) 
      (setq ret nil)
  )
  (vlax-release-object VBS)
  ret
)
als Rückgabe bekomme ich aber nur eine Zahl "41467.0" und kein Datum.
Da meine Kenntnisse was vlax-XXX angeht nahezu gleich 0 sind komme ich einfach nicht weiter.
Kann mir vieleicht einer auf die Sprünge helfen?
Dank im Voraus.
Gruß
Niggemann

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

alterHausmeister
Mitglied
Hausmeister


Sehen Sie sich das Profil von alterHausmeister an!   Senden Sie eine Private Message an alterHausmeister  Schreiben Sie einen Gästebucheintrag für alterHausmeister

Beiträge: 470
Registriert: 02.02.2009

erstellt am: 24. Jun. 2013 08:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Niggemann 10 Unities + Antwort hilfreich

Frag doch mal hier, da sitzen de Ägsberdden ...

------------------
lg, der Hausmeister
_______________________________________

46 + 1 = ein Lächeln

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Bernd10
Mitglied



Sehen Sie sich das Profil von Bernd10 an!   Senden Sie eine Private Message an Bernd10  Schreiben Sie einen Gästebucheintrag für Bernd10

Beiträge: 763
Registriert: 20.11.2003

Intel(R) Xeon(R) W-2123 CPU @ 3.60GHz
16 GB RAM
Windows 10 Pro 64-bit
AutoCAD Mechnical 2020 Deu

erstellt am: 24. Jun. 2013 08:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Niggemann 10 Unities + Antwort hilfreich


datum_ermitteln.lsp.txt

 
Hallo Niggemann,

ich habe Deinen Programmcode nicht kontrolliert, da ich auch immer mit den bsagten Funktionen kämpfe. In der Anlage ist aber meine Funktion zu Ermittlung des Datums.

Edit: Aufruf zum Beispiel: (datum_ermitteln 20 "" "" "dd.mo.yyyy")

Viele Grüße
Bernd

[Diese Nachricht wurde von Bernd10 am 24. Jun. 2013 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADwiesel
Moderator
CAD4FM UG




Sehen Sie sich das Profil von CADwiesel an!   Senden Sie eine Private Message an CADwiesel  Schreiben Sie einen Gästebucheintrag für CADwiesel

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 24. Jun. 2013 11:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Niggemann 10 Unities + Antwort hilfreich

das Datum, sowie die Uhrzeit steckt in der Systemvariablen 'CDATE'
hier mal ein codeschnipsel um diese auszulesen und zu verarbeiten:
Code:
  (defun EARX:AUX:DATUM
                        (/
;;;Deklaration von lokalen Variablen
                        EARX_DATUM    ;Wert der Systemvariablen CDATE[String]
                        )
    (setq EARX_DATUM (rtos (getvar "CDATE") 2 10))
;;;Rückgabe des Datumstextes
    (strcat
      (substr EARX_DATUM 7 2)          ;Tag
      "."
      (substr EARX_DATUM 5 2)          ;Monat
      "."
      (substr EARX_DATUM 3 2)          ;Jahr
      " "
      (substr EARX_DATUM 10 2)          ;Stunden
      ":"
      (substr EARX_DATUM 12 2)          ;Minuten
      " UHR"
      ) ;_ Ende von strcat
    ) ;_ Ende von defun EARX:AUX:DATUM

Rein theoretisch könntest du jetzt die Zeile:

Code:
(substr EARX_DATUM 7 2)

durch
Code:
(rtos(+ 20(atoi(substr EARX_DATUM 7 2)))2 0)

ersetzen.
Aber wenn du zum 25. 20 Tage hinzuzählst, kommt der 45. raus - und den kannsde auf dem Kalender ewig suchen

------------------
Gruß
CADwiesel
Besucht uns im CHAT

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

xem
Mitglied
Zeichner


Sehen Sie sich das Profil von xem an!   Senden Sie eine Private Message an xem  Schreiben Sie einen Gästebucheintrag für xem

Beiträge: 847
Registriert: 07.08.2008

Software:
AutoCAD 2022 - 64bit
Windows 10 Pro - 64bit
PDFCreator 1.0.2 - 32bit
Ghostscript 9.0 - 64bit
PDF-XChange Viewer - 64bit
GIMP 2.6.8 - 64bit
MS Office 2013 - 32bit
Opera 12 - 32bit
MacroX - 32bit
7-zip - 64bit
-----------------------
Hardware:
Intel i5 680 3,6GHz @ 4GHz
8GB RAM 1333MHz
nVidia GTX 460 1024MB
Intel SSD 2.5 80GB X25-M
Samsung SyncMaster 245B+
Iiyama ProLite E1900s
Logitech mx518
Logitech G11
Roccat Sense Glacier Blue

erstellt am: 24. Jun. 2013 13:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Niggemann 10 Unities + Antwort hilfreich

schau mal >hier<

mit:

Code:

(menucmd "M=$(edtime,$(+,20,$(getvar,date)),DD.MO.YYYY)")


bekommst du dann dein Datum

[Diese Nachricht wurde von xem am 24. Jun. 2013 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Niggemann
Mitglied



Sehen Sie sich das Profil von Niggemann an!   Senden Sie eine Private Message an Niggemann  Schreiben Sie einen Gästebucheintrag für Niggemann

Beiträge: 159
Registriert: 31.10.2003

XP Home ACAD 2004, ACAD 2007, Office 2003, RAM 1 GB, Prozessor AMD Athlon 64 x 2 Dual Core 3800+

erstellt am: 24. Jun. 2013 20:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

@ Hausmeister,
die Idee ist nicht schlecht werde meinen Beitrag dort nochmal reintellen weil ich mir denke das irgetetwas mit VL... davor  oder dahinter stehen muß.
@Bernt,
mit deinem Vorschlag kann ich schon mal super weiter machen, mein Problem ist nur das ich ein Datum vorgegeben bekomme und eben X Tage drauf rechnen muß. Danke.
@Cadwiesel,
bei den 45 war ich auch schon und habe gemerkt das es nicht klappt.
Grüße
Niggemann

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Niggemann
Mitglied



Sehen Sie sich das Profil von Niggemann an!   Senden Sie eine Private Message an Niggemann  Schreiben Sie einen Gästebucheintrag für Niggemann

Beiträge: 159
Registriert: 31.10.2003

XP Home ACAD 2004, ACAD 2007, Office 2003, RAM 1 GB, Prozessor AMD Athlon 64 x 2 Dual Core 3800+

erstellt am: 01. Jul. 2013 22:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Bernd,
geht doch:
(defun Tageaddieren (DATUM  TAGE / VBS RET XX )
  (vl-load-com)
  (setq VBS (vlax-get-or-create-object "ScriptControl"))
  (vlax-put VBS "Language" "VBScript")
  (if (= -1 (vlax-invoke VBS "EVAL" (strcat "IsDate(\"" DATUM "\")")))
  (progn
      (setq XX (fix (vlax-invoke VBS "EVAL" (strcat "DateAdd(\"d\",\"" TAGE "\", \"" DATUM "\")")))
            RET (vlax-invoke VBS "EVAL" (strcat "FormatDateTime(\""(itoa XX)"\", vbShortDate)"))));FormatDa
  (setq RET nil);sonst
  );ende if
  (vlax-release-object VBS)
  RET
)
Damit kannst du auf jede belibige Datum X Tage auf oder abrechnen.
Schaltjahre und der 29.Feb. werden auch berücksichtigt.
Vieleicht hilft es dir.
Gruß
Niggemann

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz