Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Ostern anzeigen

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:  Ostern anzeigen (652 mal gelesen)
Theodor Schoenwald
Ehrenmitglied



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

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 03. Feb. 2003 12:45    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,

ich wurde gebeten, den Gregorianischen Kalender in Lisp zu verwirklichen. Da ich nun die Arbeit gemacht habe, hier das Ergebnis.

Gruß
Theodor Schönwald
----------------------------------------------------------------

;;; Ostertag ermitteln
;;; Vers.: 1.0, Vorschlag: Schuller, (d) Schönwald 

(defun C STERN (/ C_E DATUM JAHR J A B C M1 S M N D E TAGE I_W)

(setq C_E (getvar "CMDECHO"))          ; ECHO-Variable zwischenspeichern
(setvar "CMDECHO" 0)                  ; ECHO ausschalten
(setq DATUM (rtos (getvar "CDATE"))    ; Datum auslesen und ...
      JAHR  (atoi (substr DATUM 1 4))  ; ... die Jahreszahl ermitteln ...
)
(prompt "\n \nVor 1582 gab es keinen Gregorianischen Kalender. ")
(prompt "\nSie wollen wissen wann Ostern war, ist oder sein wird?")
(prompt " Bitte geben Sie das Jahr an <")
(princ JAHR)                          ; ... und hier vorschlagen.
(setq J (getint ">: "))                ; Der Anwender kann selbst eine Jahreszahl eingeben
(if (not J)                            ; wenn nicht ...
  (setq J JAHR)                        ; ... wird die ermittelte genommen
)
(setq A (rem J 19))
(setq B (rem J 4))
(setq C (rem J 7))
(setq M1 (- (/ (+ (/ (* 8 J) 100) 13) 25) 2))
(setq S (- (/ J 100) (/ J 400) 2))
(setq M (rem (- (+ 15 S) M1) 30))
(setq N (rem (+ 6 S) 7))
(setq D (rem (+ M (* 19 A)) 30))
(if (= D 29)
  (setq D 28)
)
(if (and (= D 28) (>= A 11))
  (setq D 27)
)
(setq E (rem (+ (* 2 B) (* 4 C) (* 6 D) N) 7))
(setq TAGE (+ D E 1))
(cond
  ((< J JAHR ) (setq I_W " war, "))      ; wenn, dann
  ((= J JAHR ) (setq I_W " ist, "))
  ((> J JAHR ) (setq I_W " wird sein, "))
)
(prompt "\n \nOstern im Jahre ")      ; Bildschirmausgabe:
(princ J)
(princ I_W)
(princ TAGE)
(prompt " Tage nach dem 21. März, also am ")
(if (>= 10 TAGE)                      ; wenn ...
  (progn                                ; ... dann
  (princ (+ 21 TAGE))
  (prompt ". März")
  )
  (progn                                ; ... sonst
  (princ (- TAGE 10))
  (prompt ". April")
  )
) ;_ end if
(getstring "\nWeiter mit einer Taste") ; anhalten zum lesen
(setvar "CMDECHO" C_E)                ; ECHO wieder Rücksetzen
(princ)
) ;_ end defun
(princ)

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: 03. Feb. 2003 16:19    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 Theodor Schoenwald 10 Unities + Antwort hilfreich

Prima!

Aber da stellt sich mir die Frage: Wer zum Kuckuck gibt einen Aftrag aus Acad Ostern ermitteln zu wollen????

Entweder haben die Leute zu viel Zeit oder zuviel Geld.
Mir fallen doch jetzt ganz spontan keine Gründe ein, wofür ich in Acad dieses Lisp brauchen könnte - schade eigentlich, mal sehen ob ich's nicht als goodie in ein's meiner nächsten Lisp's einbaue.

------------------
Gruß
CADwiesel

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

Theodor Schoenwald
Ehrenmitglied



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

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 03. Feb. 2003 16: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

Hallo Cadwiesel,

deine Frage habe ich mir auch gestellt und keine Antwort gefunden.
Zuerst habe es als ABM betrachtet. Aber dann habe ich es anders gesehen.
In der heutigen Zeit kommt bei fast jeder Arbeit die Frage: "Was kommt dabei raus".
Nun hier ist etwas wo mal nichts dabei raus kommt - einfach so -.

Da du es in deine Sammlung einbinden willst, bin nicht nur ich ...

Viele Grüße
Theodor Schönwald

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 03. Feb. 2003 23:54    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 Theodor Schoenwald 10 Unities + Antwort hilfreich

Ihr Kleingeister;-)

Natürlich machen solche Funktionen durchaus Sinn in AutoCAD. Es gibt ja auch Aufgaben in AutoCAD, die über eine statische Zeichnung hinausgehen, sagen wir mal eine Prozessvisualisierung im Rahmen des Facilities Management. In den meisten Fabriken sollte sowas am Ostermontag anders aussehen als am Montag davor, oder?

AutoCAD ist auch sehr schön für die Darstellung genealogischer Zusammenhänge geeignet - auch da machen solche Dinge Sinn, und es gibt noch viele andere Anwendungen. Viele Firmen drucken sich auch die Urlaubspläne mit AutoCAD.

Was mir allerdings wenig gefallen hat - nimm's mir die Kritik nicht übel, Theodor - ist diese Verquickung von Berechnung und Ausgabe! So ist das Ganze als Funktion innerhalb eines Programms nicht zu gebrauchen, man kann das Ergebnis bestenfalls per Copy/Paste irgendwohin übernehmen.

Da wir schon mal dabei sind: Hier noch eine Funktion zur Berechnung des Wochentags zu einem gegebenen Datum. Ich habe das mal sauber getrennt: eine Berechnungsfunktion, ein Ausgabe-Programm. So macht das in meinen Augen wirklich Sinn.

(defun nWochentag(jahr monat tag / a b c d e f)
(setq a(+ monat 10))
(setq b(+(/(- monat 14)12)jahr))
(setq c(- a(* 12(/ a 13))))
(setq d(/(1-(* 13 c))5))
(setq e(/(* 5(rem b 100))4))
(setq f(rem(+ d tag 77 e(/ b 400)(-(* 2(/ b 100))))7))
(if(< f 0)(+ f 7)f)
)

(defun strWochentag(jahr monat tag lang / )
(nth(wochentag jahr monat tag)
(if lang
'("Sonntag""Montag""Dienstag""Mittwoch""Donnerstag""Freitag""Samstag")
'("So""Mo""Di""Mi""Do""Fr""Sa")
)
)
)

(defun wochentag(jahr monat tag lang / )
(princ(strWochentag jahr monat tag lang))
(princ)
)

(wochentag 2003 2 3) => "Montag"

Gruss, Axel

------------------
http://www.tutorial.autolisp.info

http://www.advanced.autolisp.info


http://www.activex.autolisp.info

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: 04. Feb. 2003 08:01    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 Theodor Schoenwald 10 Unities + Antwort hilfreich

Ich habe auch noch ein Weltraumspiel in lisp.

Das ist dazu da um strategische Intergalaktische Planungen der Irdischen Weltraumflotte im Falle einer Verteidigungssituation des Planeten zu simuliern.

Dazi ist Acad natürlich besonders gut geeignet, da man auf dieser Software sehr gut die Tatsächlichen Entfernungen und Größen des Weltalls darsetllen kann 

------------------
Gruß
CADwiesel

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 04. Feb. 2003 09:56    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 Theodor Schoenwald 10 Unities + Antwort hilfreich

Theodor Schoenwald
Ehrenmitglied



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

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 04. Feb. 2003 11:23    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 Axel,

zuerst Danke für deine Antwort, du hast richtig vermutet.
Mein "Auftraggeber" wollte das Programm a) zum Lernen vo Lisp, b) um zu sehen, ob so etwas überhaupt geht.
Nun zur Bemerkung zu der Ausgabe der Ergebnisse, da hab ich mir wirklich keine Mühe gemacht.
Wenn du mir das Programm etwas nacharbeitest, finde ich das gut und wir haben alle etwas davon.

Viele Grüße
Theodor Schönwald


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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 04. Feb. 2003 12:11    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 Theodor Schoenwald 10 Unities + Antwort hilfreich

Hi Theodor,

vielleicht wollte er auch nur mal die Leute beschäftigen - mich hatte er genauso darum gebeten;-) Ich fand die Idee sehr gut, um's auf meinen Tutorial-Seiten als Übungsaufgabe einzubinden.

Das Umarbeiten als Funktion wirst du doch auch noch hinkriegen, oder? Übrigens: es sollte auch noch kommentiert sein, ab welchem Jahr die Funktion korrekte Ergebnisse liefert. Der Gauss-Algorithmus ist ja in verschiedenen Versionen im Umlauf, mal ab 1700 (da würde ich bei der Ahnenforschung Probleme kriegen), mal ab 1582 (auch da noch) oder noch früher, und der Alg. von O'Beirne geht erst ab 1900.

Tja, und dann brauchen wir noch Funktionen für die Berechnung von Pfingsten, Himmelfahrt, Fronleichnam und vor allem für den Rosenmontag - auch der hängt ja damit zusammen, und da müsste die angesprochene Fabriksimulation ja auch ganz anders aussehen! Oh, da hätte ich jetzt beinahe Weihnachten und Neujahr vergessen;-)

Gruss, Axel (noch immer auf das Weltraumspiel wartend)

------------------
http://www.tutorial.autolisp.info

http://www.advanced.autolisp.info


http://www.activex.autolisp.info

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: 04. Feb. 2003 13:42    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 Theodor Schoenwald 10 Unities + Antwort hilfreich


swars.zip

 
Mensch, dass Du jetzt noch unter die Strategen gehen willst!

Na gut...

und zur Entspannung hab' ich noch eine Slot-maschine beigepackt.

------------------
Gruß
CADwiesel

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