Lade. Bitte warten...
| |
 04.12.2008, 19:35 Uhr
|
|
| |
Hallo CNCler, habe da mal ein Problem. muß ne Seriennummer signieren im FORMAT JJ KW XXXX also z.B. 08 51 0001. Nun ja Tag, Monat und Jahr gibt ja als Systemvariablen. Aber die Kalenderwoche? Ok dazu muß man ja erstmal den Wochentag ausrechnen. Und dann die KW. Hat so etwas schonmal jemand von Euch gemacht?? Bin für jeden Tip dankbar. MfG
|
|
|
|
|
 |
 |
 |
| |
 05.12.2008, 00:40 Uhr
|
|
| |
Kleiner Nachtrag: habe wir schon nen Wolf im Internet gesucht und heut zumindest noch nen Teil geschrieben, welcher den Wochentag eines Datums im Bereich 1.3.2008 bis 31.12.2011 ausrechnet. Bin noch auf diesen brauchbaren Link gestoßen: www.nwn.de/hgm/kalender/kal-64.htm Vielleicht hilft jemand mit, den Krams auf die 840D umzusetzen.. Mfg
|
|
|
|
|
 |
 |
 |
| |
 05.12.2008, 18:56 Uhr
|
|
| |
Hallo uli12us, naja würde gehen aber irgendwann werd ich 6-10 Maschinen fahren und was die Sache noch erschwert, wir fahren Sonntags um 22:00 Uhr an  Naja habe jetzt grad nen ersten Entwurf des Unterprogramms. Hier ist noch nix ausprobiert, habe Die Sache halt mal so dahingeschrieben: Code Blabla Programmkopf
ERGEBNIS IN R99 DEF INT WT_AKT=0 ; 1.Januar des aktuellen Jahres DEF INT WT_VOR=0 ; 1.Januar des Vorjahres DEF INT WT_NACH=0 ; 1.Januar des nachfolgenden Jahres DEF INT ZAEHLER=0 DEF INT TAGE=0 DEF INT MONATSTAGE[1,12]=(31,28,31,30,31,30,31,31,30,31,30,31)
;Schaljahr bestimmen klappt so gut bis 2099 :-) IF $A_YEAR MOD 4 == 0 MONATSTAGE[0,1]=29 ENDIF
Monatstage errechnen FOR ZAEHLER=0 TO $A_MONTH-1 TAGE= TAGE+MONATSTAGE[0,ZAEHLER] ENDFOR TAGE= TAGE+$A_DAY
;Wochentag 1.1. des aktuellen Jahres bestimmen
WT_AKT=$A_YEAR-1900 ;anzahl der vergangen jahre mit schaltjahr WT_AKT=WT_AKT DIV 4 ;anzahl der vergangen schaltjahre WT_AKT=WT_AKT +($A_YEAR-1900) ;versatz der wochentage seit 1900 WT_AKT=WT_AKT MOD 7 ; ergebnis Mon =0 bis Son=6
IF $A_YEAR MOD 4 == 0 WT_AKT=WT_AKT-1 ;Jahr ist Schaltjahr, WOCHENTAG muß um -1 korrigiert werden ENDIF
;Wochentag 1.1. des vorhergehenden Jahres bestimmen
WT_VOR=$A_YEAR-1900-1 ;anzahl der vergangen jahre mit schaltjahr WT_VOR=WT_VOR DIV 4 ;anzahl der vergangen schaltjahre WT_VOR=WT_VOR +($A_YEAR-1900-1) ;versatz der wochentage seit 1900 WT_AKT=WT_AKT MOD 7 ; ergebnis Mon =0 bis Son=6
IF ($A_YEAR-1) MOD 4 == 0 WT_VOR=WT_VOR-1 ;Jahr ist Schaltjahr, der Wochentag muß um -1 korrigiert werden ENDIF
;Wochentag 1.1. des nachfolgenden Jahres bestimmen
WT_NACH=$A_YEAR-1900+1 ;anzahl der vergangen jahre mit schaltjahr WT_NACH=WT_NACH DIV 4 ;anzahl der vergangen schaltjahre WT_VOR=WT_NACH +($A_YEAR-1900+1) ;versatz der wochentage seit 1900 WT_NACH=WT_NACH MOD 7 ; ergebnis Mon =0 bis Son=6
IF ($A_YEAR+1) MOD 4 == 0 WT_NACH=WT_NACH-1 ;Jahr ist Schaltjahr, der Wochentag muß um -1 korrigiert werden ENDIF
IF WT_AKT>3 TAGE=TAGE-(7-WT_AKT) ; der Knackpunkt -> sind wir in KW 52/53 oder KW 1 ? ELSE TAGE=TAGE+WT_AKT
IF TAGE<0 ; Tag in der letzten Woche des Vorjahres IF (WT_AKT ==4) OR (WT_VOR ==3) R99=53 ELSE R99=52 ENDIF ELSE R99=(TAGE DIV / 7) +1 ; Kalenderwoche ichh hoffe das stimmt :-)
IF (TAGE>360) AND (R99>52) ;Tag in KW 1? IF WT_AKT==3 R99==53 ENDIF IF WT_NACH==4 R99==53 ENDIF ELSE R99=1 ENDIF M17
Kommentare erwünscht MfG
|
|
|
|
|
 |
 |
 |
| |
 13.05.2010, 08:50 Uhr
|
|
| |
Hallo Trollrne Ist zwar schon ein wenig her, aber ich habe dieses Thema jetzt erst aufgegriffen. Piet2 ZITAT Funktioniert soweit Klasse, bis auf das man z.B. 32 Monatstage eingeben kann! KW und Wochentagbezeichnung stimmen aber... :-) Dieser Stand überprüft die maximale Tagesangabe. Wenn die Tageszahl nicht größer + (Tageszahl nächster Monat maximal) ---> Datum wird korrigiert angezeigt Wenn die Tageszahl größer + (Tageszahl nächster Monat maximal) ---> Abbruch z.B. 29.2.2003 --> auf 1.3.2003 geändert 29.2.2012 --> auf 29.2.2012 geblieben 61.1.2003 --> Abbruch 59.1.2003 --> auf 28.2.2003 geändert usw. Eine von vielleicht anderen(besseren) Lösungen. Gruß Wolle Hier mein letzter Stand vom UP. %_N_DATUM_KW_SPF ;$PATH=/_N_SPF_DIR ; Version3.4 -- 13.05.2010 ; If AKT_D+Differenz<8 --> Abfrage Jahresbeginn alt Fehler ; If TAG_ANZ[AKT_M]+AKT_D+Differenz<8 --> Abfrage Jahresbeginn neu mit Monatstageanzahl ; maximale Tage fuer den aktuellen Monat --> 13.03.20010 ; DEF INT AKT_Y, AKT_M, AKT_D, Differenz, TAG_Nr, TAG_ANZ[13],WochenTag, PLUS_TAG, MAX_M DEF INT REF_Y=0, REF_D_Nr=6, Dif_Y, Dif_D DEF STRING[10] Tagname AKT_D=R91 AKT_M=R92 AKT_Y=R93 ; >>>>>>>>>>>>>>> Jahresdifferenz bezogen auf 2008 Dif_Y = AKT_Y - REF_Y ; >>>>>>>>>>>>>>> Anzahl von Schaltjahren aus der Differenz Dif_D = REF_D_Nr + Dif_Y + TRUNC((Dif_Y-1) / 4) + 1 ; >>>>>>>>>>>>>>> Wochentagsnummer aus der Differenz zu 2008 If Dif_Y > 0 TAG_Nr = (Dif_D) MOD 7 Else TAG_Nr = REF_D_Nr Endif ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ; >>>>>>>>>> Anzahl Tage fr gesuchten Monat ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ; >>>>>>>>>>>>>>>>> Eventuelles Schaltjahr + 1 Tag PLUS_TAG = AKT_Y MOD 4 If (PLUS_TAG == 0) TAG_ANZ[1]=SET(0,31,60,91,121,152,182,213,244,274,305,335) Else TAG_ANZ[1]=SET(0,31,59,90,120,151,181,212,243,273,304,334) Endif ; ;>>>>>>>>>>>> Tagesangabe prüfen <<<<<<< If AKT_M < 11 If AKT_D+TAG_ANZ[AKT_M] > TAG_ANZ[AKT_M+2] MSG("Das Tages-Datum ist zu Groß "<<AKT_D) M0 Stopre GOTOF Ausgang Endif If AKT_D+TAG_ANZ[AKT_M] > TAG_ANZ[AKT_M+1] AKT_D = AKT_D - (TAG_ANZ[AKT_M+1] - TAG_ANZ[AKT_M]) AKT_M = AKT_M +1 MSG("!!!! "<<AKT_D<<"."<<AKT_M<<"."<<AKT_Y<<" autom. Datum geändert") M0 Stopre M0 Endif Endif M0 stopre M0 If AKT_M == 11 If AKT_D+TAG_ANZ[AKT_M] >= TAG_ANZ[12] + 31 MSG("Das Tages-Datum ist zu Groß "<<AKT_D) M0 Stopre GOTOF Ausgang Endif If AKT_D+TAG_ANZ[AKT_M] > TAG_ANZ[AKT_M+1] AKT_D = AKT_D - (TAG_ANZ[AKT_M+1] - TAG_ANZ[AKT_M]) AKT_M = AKT_M +1 MSG("!!!! "<<AKT_D<<"."<<AKT_M<<"."<<AKT_Y<<" autom. Datum geändert") M0 Stopre Endif Endif If AKT_M == 12 If AKT_D+TAG_ANZ[AKT_M] >= TAG_ANZ[12]+31 AKT_D = 31 MSG("!!!! "<<AKT_D<<"."<<AKT_M<<"."<<AKT_Y<<" Tag auf 31. geändert") M0 Stopre Endif Endif
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; >>>>>>>>>>>>>> Was an Tage für eine Woche fehlt in der 1.Woche Differenz = TAG_Nr - 1 ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Wochentag=(TAG_ANZ[AKT_M] + AKT_D + Differenz+PLUS_TAG) MOD 7 R99=TRUNC((TAG_ANZ[AKT_M] + AKT_D + Differenz+PLUS_TAG) / 7)
; >>>>>>>>>> 0= Sonntag 1 Woche = MODwert 6->0 If Wochentag == 0 R99 = R99 -1 Endif
; >>>>>>>>>> 1.1. bis Donnerstag in der 1.Woche If TAG_Nr < 5 R99 = R99 + 1 Endif ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ; >>>>>>>>> Jahresende KW kann 1 52 53 sein ; >>>>>>>> Jahresbeginn am Donnerstag = 53 Wochen ; >>>>>>>>>>>>>>>>>>>>>> Sonst 52. Woche oder 1. Woche If ((TAG_Nr <> 4) And (R99 == 53)) If (TAG_Nr > 4) R99=R52 Else R99=1 Endif Endif ; >>>>>>>> oder am Mittwoch im Schaltjahr = 53 Wochen If ((TAG_Nr == 3) And (Dif_Y MOD 4 <> 0) And (R99 == 53)) If (TAG_Nr > 4) R99=R52 Else R99=1 Endif Endif ; ; >>>>>>>>>>>>>>>> Das Jahr kann mit der 1. 52. oder mit der 53. Woche enden und beginnen ; >>>>>>>>> Jahresbeginn KW kann 1 52 53 sein If (TAG_ANZ[AKT_M]+AKT_D+Differenz<8) If (TAG_Nr == 5) R99=53 Endif If (TAG_Nr > 5) R99=52 Endif IF (TAG_Nr < 5) R99=1 Endif Endif
; >>>>>>>>>>>>>>> Wochentagsausgabe CASE Wochentag OF 1 GOTOF Montag 2 GOTOF Dienstag 3 GOTOF Mittwoch 4 GOTOF Donnerstag 5 GOTOF Freitag 6 GOTOF Samstag 0 GOTOF Sonntag Default GOTOF Fehler Montag: Tagname="Montag" Gotof End_Tag Dienstag: Tagname="Dienstag" Gotof End_Tag Mittwoch: Tagname="Mittwoch" Gotof End_Tag Donnerstag: Tagname="Donnerstag" Gotof End_Tag Freitag: Tagname="Freitag" Gotof End_Tag Samstag: Tagname="Samstag" Gotof End_Tag Sonntag: Tagname="Sonntag" Gotof End_Tag Fehler: Tagname="Fehler" End_Tag: ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ; AKT_Y = AKT_Y + 2000 MSG(<<AKT_D<<"."<<AKT_M<<"."<<AKT_Y<<" -- "<<Tagname<<" -- KW "<<R99) AUSGANG: M0 M17
Der Beitrag wurde von cnc-wolle bearbeitet: 13.05.2010, 08:58 Uhr
|
|
|
|
|
 |
 |
 |
| |
 20.05.2010, 09:41 Uhr
|
|
| |
Hallo Trollrne Meine Bedingungen habe ich natürlich auch in Wiki gefunden. Das Problem liegt aber, wie meistens, im Detail und den Möglichkeiten die einem in dem System zur Verfügung stehen. (und auch mit viel Geduld bis es letztlich schlüssig ist) Den schwarzen Hintergrund des aktuellen Datums habe ich nur zum Test angefangen und müsste letztendlich noch zu Ende geführt werden. In nächster Zeit habe ich etwas Größeres um die Ohren, deshalb breche ich erstmal ab. Für die eine oder andere Frage ist aber immer Zeit. Ich habe ein paar Bildchen mit Beispielen und die Maskendefinition “Dat_Kw.COM“ beigelegt. Gruß Wolle //M(KaWo/"Kalenderwoche") DEF LEER003 = (I///,"",,/,WR0,//""/530,,/400,,150/1,10) Def JahrStr= (S///,"Jahres",,""/,WR0,//""/10,,/50,,90/10,1), AKT_D = (I/1,28//,"Tag",,/,WR2,///150,,/180,,35/7,0), AKT_M = (I/1,12//,"Monat",,/,WR2,///230,,/270,,35/7,0), AKT_Y = (I/2000,2099//,"Jahr",,/,WR2,///310,,/340,,50/7,0), REF_Str = (S///,"",,/,WR1,///440,,120/50,,90/3,9), SchJahr = (S///,"",,/,WR2,///400,,120/460,,10/3,9) Def TagStr = (S////WR1//""/,,/120,,100/6,0), StartTag= (I///,"Anfang",,""/,WR0,//""/10,,/50,,90/6,0), StartStr = (S////WR1//""/,,/50,,90/10,1), MonStr = (S////WR1//""/,,/210,,90/6,0), XTag = (I///,"JahresTag",,/,WR1,//""/310,,100/370,,40/6,0), KaWo = (I///,"KW",,/,WR1//""/410,,/430,,40/6,0) Def EndStr= (S///,"Ende",,""/,WR1,//""/20,,/50,,90/10,1) DEF LEER023 = (I///,"",,/,WR0,//""/530,,/400,,150/1,10) ; ; >>>>>>>>>>>> Berechnungsparameter <<<<<<<<<<<<<<<<<<<<<<<<<<<<< DEF MonDiff = (R///,"MonDiff",,/,WR1,//""/230,,/300,,90/1,10), MonDif = (I///,"",,/,WR0,//""/,,/,,/), MonAnf = (I///,"",,/,WR0,//""/,,/,,/), MonEnd = (I///,"",,/,WR0,//""/,,/,,/), REF_D = (I///,"",,/,WR0,//""/,,/,,/), REF_Y = (I///,"",,/,WR0,//""/,,/,,/), DIF_D = (I///,"",,/,WR0,//""/,,/,,/), DIF_Y = (I///,"",,/,WR0,//""/,,/,,/), DIF_S = (I///,"",,/,WR0,//""/,,/,,/), DIF_SM = (I///,"",,/,WR0,//""/,,/,,/), KaWo_SM = (I///,"",,/,WR0,//""/,,/,,/), MonLang = (I///,"",,/,WR0,//""/,,/,,/), MoKaWo = (I///,"",,/,WR0,//""/,,/,,/), MoKaWo_SM = (I///,"",,/,WR0,//""/,,/,,/), Differenz= (I///,"",,/,WR0,//""/,,/,,/), TMP01 = (I///,"",,/,WR0,//""/,,/,,/), TMP11 = (I///,"",,/,WR0,//""/,,/,,/), TMP12 = (I///,"",,/,WR0,//""/,,/,,/), TagNr = (I///,"",,/,WR0,//""/,,/,,/1) ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< DEF MonAkt = (S////WR1//""/,,/210,,90/7,0), JahrAkt = (S////WR1//""/,,/280,,50/7,0) DEF Lin01 = (S///,"-------------------------------------------------",,/,WR1,//""/190,,300/,,/0,0) DEF KWStr = (s///,,,/,WR1//""/,,/150,,40/1,0), MoStr = (s///,,,/,WR1//""/,,/190,,40/1,0), DiStr = (s///,,,/,WR1//""/,,/220,,40/1,0), MiStr = (s///,,,/,WR1//""/,,/250,,40/1,0), DoStr = (s///,,,/,WR1//""/,,/280,,40/1,0), FrStr = (s///,,,/,WR1//""/,,/310,,40/1,0), SaStr = (s///,,,/,WR1//""/,,/340,,40/1,0), SoStr = (s///,,,/,WR1//""/,,/370,,40/1,9) DEF KWInt1 = (I///,,,/,WR1//""/,,/150,,40/6,10), TagPlatz1 = (I///,,,/,WR1//""/,,/190,,40/1,10), TagPlatz2 = (I///,,,/,WR1//""/,,/220,,40/1,10), TagPlatz3 = (I///,,,/,WR1//""/,,/250,,40/1,10), TagPlatz4 = (I///,,,/,WR1//""/,,/280,,40/1,10), TagPlatz5 = (I///,,,/,WR1//""/,,/310,,40/1,10), TagPlatz6 = (I///,,,/,WR1//""/,,/340,,40/1,10), TagPlatz7 = (I///,,,/,WR1//""/,,/370,,40/1,9) DEF KWInt2 = (I///,,,/,WR1//""/,,/150,,40/6,10), TagPlatz8 = (I///,,,/,WR1//""/,,/190,,40/1,10), TagPlatz9 = (I///,,,/,WR1//""/,,/220,,40/1,10), TagPlatz10 = (I///,,,/,WR1//""/,,/250,,40/1,10), TagPlatz11 = (I///,,,/,WR1//""/,,/280,,40/1,10), TagPlatz12 = (I///,,,/,WR1//""/,,/310,,40/1,10), TagPlatz13 = (I///,,,/,WR1//""/,,/340,,40/1,10), TagPlatz14 = (I///,,,/,WR1//""/,,/370,,40/1,9) DEF KWInt3 = (I///,,,/,WR1//""/,,/150,,40/6,10), TagPlatz15 = (I///,,,/,WR1//""/,,/190,,40/1,10), TagPlatz16 = (I///,,,/,WR1//""/,,/220,,40/1,10), TagPlatz17 = (I///,,,/,WR1//""/,,/250,,40/1,10), TagPlatz18 = (I///,,,/,WR1//""/,,/280,,40/1,10), TagPlatz19 = (I///,,,/,WR1//""/,,/310,,40/1,10), TagPlatz20 = (I///,,,/,WR1//""/,,/340,,40/1,10), TagPlatz21 = (I///,,,/,WR1//""/,,/370,,40/1,9) DEF KWInt4 = (I///,,,/,WR1//""/,,/150,,40/6,10), TagPlatz22 = (I///,,,/,WR1//""/,,/190,,40/1,10), TagPlatz23 = (I///,,,/,WR1//""/,,/220,,40/1,10), TagPlatz24 = (I///,,,/,WR1//""/,,/250,,40/1,10), TagPlatz25 = (I///,,,/,WR1//""/,,/280,,40/1,10), TagPlatz26 = (I///,,,/,WR1//""/,,/310,,40/1,10), TagPlatz27 = (I///,,,/,WR1//""/,,/340,,40/1,10), TagPlatz28 = (I///,,,/,WR1//""/,,/370,,40/1,9) DEF KWInt5 = (I///,,,/,WR1//""/,,/150,,40/6,10), TagPlatz29 = (I///,,,/,WR1//""/,,/190,,40/1,10), TagPlatz30 = (I///,,,/,WR1//""/,,/220,,40/1,10), TagPlatz31 = (I///,,,/,WR1//""/,,/250,,40/1,10), TagPlatz32 = (I///,,,/,WR1//""/,,/280,,40/1,10), TagPlatz33 = (I///,,,/,WR1//""/,,/310,,40/1,10), TagPlatz34 = (I///,,,/,WR1//""/,,/340,,40/1,10), TagPlatz35 = (I///,,,/,WR1//""/,,/370,,40/1,9) DEF KWInt6 = (I///,,,/,WR1//""/,,/150,,40/6,10), TagPlatz36 = (I///,,,/,WR1//""/,,/190,,40/1,10), TagPlatz37 = (I///,,,/,WR1//""/,,/220,,40/1,10), TagPlatz38 = (I///,,,/,WR1//""/,,/250,,40/1,10), TagPlatz39 = (I///,,,/,WR1//""/,,/280,,40/1,10), TagPlatz40 = (I///,,,/,WR1//""/,,/310,,40/1,10), TagPlatz41 = (I///,,,/,WR0//""/,,/340,,40/1,10), TagPlatz42 = (I///,,,/,WR0//""/,,/370,,40/1,9)
HS1=("",,se2) HS2=("",,se2) HS3=("",,se2) HS4=("",,se2) HS5=("",,se2) HS6=("",,se2) HS7=("",,se2) HS8=("",,se2) VS1=("",,se1) VS2=("",,se1) VS3=("",,se1) VS4=("",,se1) VS5=("",,se1) VS6=("",,se1) VS7=("",,se1) VS8=("Ausgang",,se1)
LOAD KWStr.val="KW" MoStr.val="Mo" DiStr.val="Di" MiStr.val="MI" DoStr.val="Do" FrStr.val="Fr" SaStr.val="Sa" SoStr.val="So" REF_D.val=6 REF_Y.val=2000 REF_Str.val="Referenzjahr" TagNr.val=REF_D Differenz.val=TagNr-1 MonDif.val=Differenz AKT_D.val=1 AKT_D.max=31 AKT_M.val=1 AKT_Y.val=REF_Y.val KaWo.val=52 MoKaWo=52 MonAnf=KaWo StartTag.val = REF_D.val StartStr.val = Tag_Jahr[1,StartTag,1] EndStr.val = Tag_Jahr[1,StartTag,1] TagStr.val = Tag_Jahr[1,StartTag,1] MonStr.val = Tag_Jahr[2,AKT_M,1] XTag.val = 1 SchJahr.st="Schaltjahr" SchJahr.val=1 ; >>>>>>>>>>>>>>>>>>> CALL("Monat") END_LOAD
press(VS8) EXIT END_PRESS
PRESS(RECALL) EXIT END_PRESS
FOCUS ; >>>>>>>>>> Jahresbeginn-Wochentag errechnen <<<<<<<<<<<<<<<<<< Dif_Y = AKT_Y-REF_Y Dif_S = Dif_Y / 4 Dif_SM = Dif_S MOD 1 If Dif_Y > 0 Ref_Str.wr=0 If Dif_S <= 1 StartTag= (REF_D + Dif_Y) MOD 7 + 1 Else If Dif_SM == 0 StartTag= (REF_D + Dif_Y + Dif_S ) MOD 7 Else StartTag= (REF_D + Dif_Y + Dif_S - Dif_SM) MOD 7 + 1 Endif Endif Else StartTag=REF_D Ref_Str.wr=1 Endif StartStr.val = Tag_Jahr[1,StartTag,1] EndStr.val = Tag_Jahr[1,StartTag,1] Differenz= StartTag - 1 ; >>>>>>>> Monats- -Name -Starttag -Jahrestag -Schaltjahr If (AKT_Y MOD 4 == 0) MonStr.val = Tag_Jahr[2,AKT_M,1] MonDiff = Tag_Anz[2,AKT_M,1] MonEnd = Tag_Anz[2,AKT_M,1] MonLang = Tag_Anz[4,AKT_M,1] AKT_D.max=MonLang XTag.val = MonDiff + AKT_D SchJahr.st="Schaltjahr" SchJahr.val="J" If StartTag >= 7 EndStr.val = Tag_Jahr[1,1,1] Else EndStr.val = Tag_Jahr[1,StartTag+1,1] Endif Else MonStr.val = Tag_Jahr[2,AKT_M,1] MonDiff.val = Tag_Anz[1,AKT_M,1] MonEnd.val = Tag_Anz[1,AKT_M,1] MonLang = Tag_Anz[3,AKT_M,1] AKT_D.max=MonLang XTag.val = MonDiff + AKT_D SchJahr.st="" SchJahr.val="N" Endif ; >>>>> Tagesnummer von 1-6 + 0=Sonntag <<<<<<<<<< TagNr.val= (Differenz+Xtag) MOD 7 If TagNr == 0 TagStr.val = Tag_Jahr[1,7,1] Else TagStr.val = Tag_Jahr[1,TagNr,1] Endif ; >>>>>>>> Wochentags Nummer Monatsstartnummer MonDif.val=(Differenz+MonDiff) MOD 7 If MonDif == 7 MonDif = 0 Endif TagPlatz41.val=MonDif ; ; >>>>>>>>>>> KW rechnen >>>>>>>> ; TMP11.val = (Differenz + XTag) / 7 KaWo_SM.val = TMP11 MOD 1 KaWo.val = TMP11 - KaWo_SM If StartTag < 5 KaWo.val=KaWo.val + 1 Endif If (TagNr == 0) KaWo.val=KaWo.val - 1 Endif
TMP12.val = (Differenz + MonDiff) / 7 MoKaWo_SM.val = TMP12 MOD 1 MoKaWo.val = TMP12 - MoKaWo_SM If StartTag < 5 MoKaWo.val=MoKaWo.val + 1 Endif If MoKaWo == 0 MoKaWo=1 Endif ; KWInt1.val=MoKaWo KWInt2.val=MoKaWo+1 KWInt3.val=MoKaWo+2 KWInt4.val=MoKaWo+3 KWInt5.val=MoKaWo+4 KWInt6.val=MoKaWo+5 ; ; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Jahresende <<<<<<<< If (StartTag <> 4) And (KaWo == 53) If StartTag > 4 KaWo.val = 52 Else KaWo.val = 1 Endif Endif If (StartTag == 3) And (KaWo == 53) And (Dif_Y MOD 4 <> 0) If StartTag > 4 KaWo.val = 52 Else KaWo.val = 1 Endif Endif ; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Jahresanfang <<<<<<<< If (Differenz + XTag) < 8 If StartTag == 5 KaWo.val = 53 KWInt1.val=53 KWInt2.val=MoKaWo KWInt3.val=MoKaWo+1 KWInt4.val=MoKaWo+2 KWInt5.val=MoKaWo+3 KWInt6.val=MoKaWo+4 Endif If StartTag > 5 KaWo.val = 52 KWInt1.val=52 KWInt2.val=MoKaWo KWInt3.val=MoKaWo+1 KWInt4.val=MoKaWo+2 KWInt5.val=MoKaWo+3 KWInt6.val=MoKaWo+4 Endif If StartTag < 5 KaWo.val = 1 If MoKaWo == 0 ) MoKaWo = 1 Endif KWInt1.val=MoKaWo KWInt2.val=MoKaWo+1 KWInt3.val=MoKaWo+2 KWInt4.val=MoKaWo+3 KWInt5.val=MoKaWo+4 KWInt6.val=MoKaWo+5 Endif Endif MonAkt.val=MonStr.val JahrAkt.val=AKT_Y.val Call("Monat") END_FOCUS ; ==================== Unterprogramme ============= SUB(Monat) ; >>>>>>> Monatstage auffuellen <<<<<<< TagPlatz1.val=1-MonDif TagPlatz2.val=2-MonDif TagPlatz3.val=3-MonDif TagPlatz4.val=4-MonDif TagPlatz5.val=5-MonDif TagPlatz6.val=6-MonDif If TagPlatz1.val <= 0 TagPlatz1.fc = 10 TagPlatz1.wr = 0 Else If AKT_D == 1-MonDif TagPlatz1.fc = 10 TagPlatz1.bc = 1 Else TagPlatz1.fc = 1 TagPlatz1.bc = 10 Endif TagPlatz1.wr = 1 Endif If TagPlatz2.val <= 0 TagPlatz2.fc = 10 TagPlatz2.wr = 0 Else If AKT_D == 2-MonDif TagPlatz2.fc = 10 TagPlatz2.bc = 1 Else TagPlatz2.fc = 1 TagPlatz2.bc = 10 Endif TagPlatz2.wr = 1 Endif If TagPlatz3.val <= 0 TagPlatz3.fc = 10 TagPlatz3.wr = 0 Else If AKT_D == 3-MonDif TagPlatz3.fc = 10 TagPlatz3.bc = 1 Else TagPlatz3.fc = 1 TagPlatz3.bc = 10 Endif TagPlatz3.wr = 1 Endif If TagPlatz4.val <= 0 TagPlatz4.fc = 10 TagPlatz4.wr = 0 Else If AKT_D == 4-MonDif TagPlatz4.fc = 10 TagPlatz4.bc = 1 Else TagPlatz4.fc = 1 TagPlatz4.bc = 10 Endif TagPlatz4.wr = 1 Endif If TagPlatz5.val <= 0 TagPlatz5.fc = 10 TagPlatz5.wr = 0 Else If AKT_D == 5-MonDif TagPlatz5.fc = 10 TagPlatz5.bc = 1 Else TagPlatz5.fc = 1 TagPlatz5.bc = 10 Endif TagPlatz5.wr = 1 Endif If TagPlatz6.val <= 0 TagPlatz6.fc = 10 TagPlatz6.wr = 0 Else If AKT_D == 6-MonDiff TagPlatz6.fc = 10 TagPlatz6.bc = 1 Else TagPlatz6.fc = 1 TagPlatz6.bc = 10 Endif TagPlatz6.wr = 1 Endif TagPlatz7.val=7-MonDif If AKT_D == 7-MonDif TagPlatz7.fc = 10 TagPlatz7.bc = 1 Else TagPlatz7.fc = 1 TagPlatz7.bc = 9 Endif TagPlatz8.val=8-MonDif If AKT_D == 8-MonDif TagPlatz8.fc = 10 TagPlatz8.bc = 1 Else TagPlatz8.fc = 1 TagPlatz8.bc = 10 Endif TagPlatz9.val=9-MonDif If AKT_D == 9-MonDif TagPlatz9.fc = 10 TagPlatz9.bc = 1 Else TagPlatz9.fc = 1 TagPlatz9.bc = 10 Endif TagPlatz10.val=10-MonDif TagPlatz11.val=11-MonDif TagPlatz12.val=12-MonDif TagPlatz13.val=13-MonDif TagPlatz14.val=14-MonDif TagPlatz15.val=15-MonDif TagPlatz16.val=16-MonDif TagPlatz17.val=17-MonDif TagPlatz18.val=18-MonDif TagPlatz19.val=19-MonDif TagPlatz20.val=20-MonDif TagPlatz21.val=21-MonDif TagPlatz22.val=22-MonDif If AKT_D == 22-MonDif TagPlatz22.fc = 10 TagPlatz22.bc = 1 Else TagPlatz22.fc = 1 TagPlatz22.bc = 10 Endif TagPlatz23.val=23-MonDif TagPlatz24.val=24-MonDif TagPlatz25.val=25-MonDif TagPlatz26.val=26-MonDif TagPlatz27.val=27-MonDif TagPlatz28.val=28-MonDif If MonLang + MonDif >= 29 TagPlatz29.val=29-MonDif TagPlatz29.fc = 1 TagPlatz29.wr = 1 Else TagPlatz29.bc =10 TagPlatz29.wr =0 Endif If MonLang + MonDif >= 30 TagPlatz30.val=30-MonDif TagPlatz30.fc = 1 TagPlatz30.wr = 1 Else TagPlatz30.val=29-MonDif TagPlatz30.fc = 10 TagPlatz30.wr = 0 Endif If MonLang + MonDif >= 31 TagPlatz31.val=31-MonDif TagPlatz31.fc = 1 TagPlatz31.wr = 1 Else TagPlatz31.fc = 10 TagPlatz31.wr = 0 Endif If MonLang + MonDif >= 32 TagPlatz32.val=32-MonDif TagPlatz32.fc = 1 TagPlatz32.wr = 1 Else TagPlatz32.fc = 10 TagPlatz32.wr = 0 Endif If MonLang + MonDif >= 33 TagPlatz33.val=33-MonDif TagPlatz33.fc = 1 TagPlatz33.wr = 1 Else TagPlatz33.fc = 10 TagPlatz33.wr = 0 Endif If MonLang + MonDif >= 34 TagPlatz34.val=34-MonDif TagPlatz34.fc = 1 TagPlatz34.wr = 1 Else TagPlatz34.fc = 10 TagPlatz34.wr = 0 Endif If MonLang + MonDif >= 35 TagPlatz35.val=35-MonDif TagPlatz35.fc = 1 TagPlatz35.wr = 1 Else TagPlatz35.fc = 10 TagPlatz35.wr = 0 Endif If MonLang + MonDif >= 36 TagPlatz36.val=36-MonDif TagPlatz36.fc = 1 TagPlatz36.wr = 1 Else TagPlatz36.fc = 10 TagPlatz36.wr = 0 Endif If MonLang + MonDif >= 37 TagPlatz37.val=37-MonDif TagPlatz37.fc = 1 TagPlatz37.wr = 1 Else TagPlatz37.wr = 0 Endif Endif If MonLang + MonDif >= 38 TagPlatz38.val=38-MonDif TagPlatz38.fc = 1 TagPlatz38.wr = 1 Else TagPlatz38.wr = 0 Endif Endif If MonLang + MonDif >= 39 TagPlatz39.val=39-MonDif TagPlatz39.fc = 1 TagPlatz39.wr = 1 Else TagPlatz39.wr = 0 Endif Endif Endif If MonLang + MonDif >= 40 TagPlatz40.fc = 1 TagPlatz40.wr = 1 Else TagPlatz40.wr = 0 Endif Endif Endif END_SUB //end ;====================== Daten ============ ; //A(Tag_Jahr) (1/"Montag"/"Dienstag"/"Mittwoch"/"Donnerstag"/"Freitag"/"Samstag"/"Sonntag"/0/0/0/0/0) (2/"Januar"/"Februar"/"Maerz"/"April"/"Mai"/"Juni"/"Juli"/"August"/"September"/"Oktober"/"November"/"Dezember") //END //A(Tag_Anz) (1/0/31/59/90/120/151/181/212/243/273/304/334) (2/0/31/60/91/121/152/182/213/244/274/305/335) (3/31/28/31/30/31/30/31/31/30/31/30/31) (4/31/29/31/30/31/30/31/31/30/31/30/31) //END
Der Beitrag wurde von cnc-wolle bearbeitet: 20.05.2010, 09:44 Uhr
|
|
|
|
|
 |
 |
 |
| |
 21.05.2010, 08:51 Uhr
|
|
| |
Hi Habe noch ein Haar in der Suppe gefunden. Wenn der Monat mit KW 52/53 und der Tag startet in der 1. Zeile ---> dann war es o.K. Wenn der Tag in der 2. bis 6. Zeile kam es zu einem Fehler ---> die KW 52/53 war weg. Diese KW-Zeilen waren nur innerhalb der Startwoche definiert. Die Definition findet jetzt gesondert statt in einem eigenen If Monat Januar ---> dann kommt die richtige Ausgabe (siehe Änderungsfarben) Kleine Zugabe mit 2 Button Monat Auf/Ab auf Knopfdruck. geändert ....... gelöscht........ hinzu;;; Version 2.0 ;;; 21.5.10 Monatsuebersicht KW 6 Zeilen ge„ndert ;;; 2 Button Monat- -Auf -Ab hinzu //M(KaWo/"Kalenderwoche") DEF LEER003 = (I///,"",,/,WR0,//""/530,,/400,,150/1,10) Def JahrStr= (S///,"Jahres",,""/,WR0,//""/10,,/50,,90/10,1), AKT_D = (I/1,28//,"Tag",,/,WR2,///150,,/180,,35/7,0), AKT_M = (I/1,12//,"Monat",,/,WR2,///230,,/270,,35/7,0), AKT_Y = (I/2000,2099//,"Jahr",,/,WR2,///310,,/340,,50/7,0), REF_Str = (S///,"",,/,WR1,///440,,120/50,,90/3,9), SchJahr = (S///,"",,/,WR2,///400,,120/460,,10/3,9) Def TagStr = (S////WR1//""/,,/120,,100/6,0), StartTag= (I///,"Anfang",,""/,WR0,//""/10,,/50,,90/6,0), StartStr = (S////WR1//""/,,/50,,90/10,1), MonStr = (S////WR1//""/,,/210,,90/6,0), XTag = (I///,"JahresTag",,/,WR1,//""/310,,100/370,,40/6,0), KaWo = (I///,"KW",,/,WR1//""/410,,/430,,40/6,0) Def EndStr= (S///,"Ende",,""/,WR1,//""/20,,/50,,90/10,1) DEF LEER023 = (I///,"",,/,WR0,//""/530,,/400,,150/1,10) ; ; >>>>>>>>>>>> Berechnungsparameter <<<<<<<<<<<<<<<<<<<<<<<<<<<<< DEF MonDiff = (R///,"",,/,WR0,//""/230,,/300,,90/1,10), MonDif = (I///,"",,/,WR0,//""/,,/,,/), MonAnf = (I///,"",,/,WR0,//""/,,/,,/), MonEnd = (I///,"",,/,WR0,//""/,,/,,/), REF_D = (I///,"",,/,WR0,//""/,,/,,/), REF_Y = (I///,"",,/,WR0,//""/,,/,,/), DIF_D = (I///,"",,/,WR0,//""/,,/,,/), DIF_Y = (I///,"",,/,WR0,//""/,,/,,/), DIF_S = (I///,"",,/,WR0,//""/,,/,,/), DIF_SM = (I///,"",,/,WR0,//""/,,/,,/), KaWo_SM = (I///,"",,/,WR0,//""/,,/,,/), MonLang = (I///,"",,/,WR0,//""/,,/,,/), MoKaWo = (I///,"",,/,WR0,//""/,,/,,/), MoKaWo_SM = (I///,"",,/,WR0,//""/,,/,,/), Differenz= (I///,"",,/,WR0,//""/,,/,,/), TMP01 = (I///,"",,/,WR0,//""/,,/,,/), TMP11 = (I///,"",,/,WR0,//""/,,/,,/), TMP12 = (I///,"",,/,WR0,//""/,,/,,/), TagNr = (I///,"",,/,WR0,//""/,,/,,/1) ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< DEF MonAkt = (S////WR1//""/,,/210,,90/7,0), JahrAkt = (S////WR1//""/,,/280,,50/7,0) DEF Lin01 = (S///,"-------------------------------------------------",,/,WR1,//""/190,,300/,,/0,0) DEF KWStr = (s///,,,/,WR1//""/,,/150,,40/1,0), MoStr = (s///,,,/,WR1//""/,,/190,,40/1,0), DiStr = (s///,,,/,WR1//""/,,/220,,40/1,0), MiStr = (s///,,,/,WR1//""/,,/250,,40/1,0), DoStr = (s///,,,/,WR1//""/,,/280,,40/1,0), FrStr = (s///,,,/,WR1//""/,,/310,,40/1,0), SaStr = (s///,,,/,WR1//""/,,/340,,40/1,0), SoStr = (s///,,,/,WR1//""/,,/370,,40/1,9) DEF KWInt1 = (I///,,,/,WR1//""/,,/150,,40/6,10), TagPlatz1 = (I///,,,/,WR1//""/,,/190,,40/1,10), TagPlatz2 = (I///,,,/,WR1//""/,,/220,,40/1,10), TagPlatz3 = (I///,,,/,WR1//""/,,/250,,40/1,10), TagPlatz4 = (I///,,,/,WR1//""/,,/280,,40/1,10), TagPlatz5 = (I///,,,/,WR1//""/,,/310,,40/1,10), TagPlatz6 = (I///,,,/,WR1//""/,,/340,,40/1,10), TagPlatz7 = (I///,,,/,WR1//""/,,/370,,40/1,9) DEF KWInt2 = (I///,,,/,WR1//""/,,/150,,40/6,10), TagPlatz8 = (I///,,,/,WR1//""/,,/190,,40/1,10), TagPlatz9 = (I///,,,/,WR1//""/,,/220,,40/1,10), TagPlatz10 = (I///,,,/,WR1//""/,,/250,,40/1,10), TagPlatz11 = (I///,,,/,WR1//""/,,/280,,40/1,10), TagPlatz12 = (I///,,,/,WR1//""/,,/310,,40/1,10), TagPlatz13 = (I///,,,/,WR1//""/,,/340,,40/1,10), TagPlatz14 = (I///,,,/,WR1//""/,,/370,,40/1,9) DEF KWInt3 = (I///,,,/,WR1//""/,,/150,,40/6,10), TagPlatz15 = (I///,,,/,WR1//""/,,/190,,40/1,10), TagPlatz16 = (I///,,,/,WR1//""/,,/220,,40/1,10), TagPlatz17 = (I///,,,/,WR1//""/,,/250,,40/1,10), TagPlatz18 = (I///,,,/,WR1//""/,,/280,,40/1,10), TagPlatz19 = (I///,,,/,WR1//""/,,/310,,40/1,10), TagPlatz20 = (I///,,,/,WR1//""/,,/340,,40/1,10), TagPlatz21 = (I///,,,/,WR1//""/,,/370,,40/1,9) DEF KWInt4 = (I///,,,/,WR1//""/,,/150,,40/6,10), TagPlatz22 = (I///,,,/,WR1//""/,,/190,,40/1,10), TagPlatz23 = (I///,,,/,WR1//""/,,/220,,40/1,10), TagPlatz24 = (I///,,,/,WR1//""/,,/250,,40/1,10), TagPlatz25 = (I///,,,/,WR1//""/,,/280,,40/1,10), TagPlatz26 = (I///,,,/,WR1//""/,,/310,,40/1,10), TagPlatz27 = (I///,,,/,WR1//""/,,/340,,40/1,10), TagPlatz28 = (I///,,,/,WR1//""/,,/370,,40/1,9) DEF KWInt5 = (I///,,,/,WR1//""/,,/150,,40/6,10), TagPlatz29 = (I///,,,/,WR1//""/,,/190,,40/1,10), TagPlatz30 = (I///,,,/,WR1//""/,,/220,,40/1,10), TagPlatz31 = (I///,,,/,WR1//""/,,/250,,40/1,10), TagPlatz32 = (I///,,,/,WR1//""/,,/280,,40/1,10), TagPlatz33 = (I///,,,/,WR1//""/,,/310,,40/1,10), TagPlatz34 = (I///,,,/,WR1//""/,,/340,,40/1,10), TagPlatz35 = (I///,,,/,WR1//""/,,/370,,40/1,9) DEF KWInt6 = (I///,,,/,WR1//""/,,/150,,40/6,10), TagPlatz36 = (I///,,,/,WR1//""/,,/190,,40/1,10), TagPlatz37 = (I///,,,/,WR1//""/,,/220,,40/1,10), TagPlatz38 = (I///,,,/,WR1//""/,,/250,,40/1,10), TagPlatz39 = (I///,,,/,WR1//""/,,/280,,40/1,10), TagPlatz40 = (I///,,,/,WR1//""/,,/310,,40/1,10), TagPlatz41 = (I///,,,/,WR0//""/,,/340,,40/1,10), TagPlatz42 = (I///,,,/,WR0//""/,,/370,,40/1,9)
HS1=("",,se2) HS2=("",,se2) HS3=("",,se2) HS4=("",,se2) HS5=("",,se2) HS6=("",,se2) HS7=("",,se2) HS8=("",,se2) VS1=("",,se1) VS2=("Monat +auf+",,se1) VS3=("Monat -ab- ",,se1) VS4=("",,se1) VS5=("",,se1) VS6=("",,se1) VS7=("",,se1) VS8=("Ausgang",,se1)
LOAD KWStr.val="KW" MoStr.val="Mo" DiStr.val="Di" MiStr.val="MI" DoStr.val="Do" FrStr.val="Fr" SaStr.val="Sa" SoStr.val="So" REF_D.val=6 REF_Y.val=2000 REF_Str.val="Referenzjahr" TagNr.val=REF_D Differenz.val=TagNr-1 MonDif.val=Differenz AKT_D.val=1 AKT_D.max=31 AKT_M.val=1 AKT_Y.val=REF_Y.val KaWo.val=52 MoKaWo=52 MonAnf=KaWo StartTag.val = REF_D.val StartStr.val = Tag_Jahr[1,StartTag,1] EndStr.val = Tag_Jahr[1,StartTag,1] TagStr.val = Tag_Jahr[1,StartTag,1] MonStr.val = Tag_Jahr[2,AKT_M,1] XTag.val = 1 SchJahr.st="Schaltjahr" SchJahr.val=1 ; >>>>>>>>>>>>>>>>>>> CALL("Monat") END_LOAD
press(VS2) FOC = "AKT_M" AKT_M = AKT_M + 1 Endif FOC = "AKT_Y" END_PRESS press(VS3) FOC = "AKT_M" AKT_M = AKT_M - 1 Endif FOC = "AKT_Y" END_PRESS press(VS8) EXIT END_PRESS
PRESS(RECALL) EXIT END_PRESS
FOCUS
If AKT_M > 12 AKT_M = 1 Endif If AKT_M < 1 AKT_M = 12 Endif ; >>>>>>>>>> Jahresbeginn-Wochentag errechnen <<<<<<<<<<<<<<<<<< Dif_Y = AKT_Y-REF_Y Dif_S = Dif_Y / 4 Dif_SM = Dif_S MOD 1 If Dif_Y > 0 Ref_Str.wr=0 If Dif_S <= 1 StartTag= (REF_D + Dif_Y) MOD 7 + 1 Else If Dif_SM == 0 StartTag= (REF_D + Dif_Y + Dif_S ) MOD 7 Else StartTag= (REF_D + Dif_Y + Dif_S - Dif_SM) MOD 7 + 1 Endif Endif Else StartTag=REF_D Ref_Str.wr=1 Endif StartStr.val = Tag_Jahr[1,StartTag,1] EndStr.val = Tag_Jahr[1,StartTag,1] Differenz= StartTag - 1 ; >>>>>>>> Monats- -Name -Starttag -Jahrestag -Schaltjahr If (AKT_Y MOD 4 == 0) MonStr.val = Tag_Jahr[2,AKT_M,1] MonDiff = Tag_Anz[2,AKT_M,1] MonEnd = Tag_Anz[2,AKT_M,1] MonLang = Tag_Anz[4,AKT_M,1] AKT_D.max=MonLang XTag.val = MonDiff + AKT_D SchJahr.st="Schaltjahr" SchJahr.val="J" If StartTag >= 7 EndStr.val = Tag_Jahr[1,1,1] Else EndStr.val = Tag_Jahr[1,StartTag+1,1] Endif Else MonStr.val = Tag_Jahr[2,AKT_M,1] MonDiff.val = Tag_Anz[1,AKT_M,1] MonEnd.val = Tag_Anz[1,AKT_M,1] MonLang = Tag_Anz[3,AKT_M,1] AKT_D.max=MonLang XTag.val = MonDiff + AKT_D SchJahr.st="" SchJahr.val="N" Endif ; >>>>> Tagesnummer von 1-6 + 0=Sonntag <<<<<<<<<< TagNr.val= (Differenz+Xtag) MOD 7 If TagNr == 0 TagStr.val = Tag_Jahr[1,7,1] Else TagStr.val = Tag_Jahr[1,TagNr,1] Endif ; >>>>>>>> Wochentags Nummer Monatsstartnummer MonDif.val=(Differenz+MonDiff) MOD 7 If MonDif == 7 MonDif = 0 Endif TagPlatz41.val=MonDif ; ; >>>>>>>>>>> KW rechnen >>>>>>>> ; TMP11.val = (Differenz + XTag) / 7 KaWo_SM.val = TMP11 MOD 1 KaWo.val = TMP11 - KaWo_SM If StartTag < 5 KaWo.val=KaWo.val + 1 Endif If (TagNr == 0) KaWo.val=KaWo.val - 1 Endif
TMP12.val = (Differenz + MonDiff) / 7 MoKaWo_SM.val = TMP12 MOD 1 MoKaWo.val = TMP12 - MoKaWo_SM If StartTag < 5 MoKaWo.val=MoKaWo.val + 1 Endif If MoKaWo == 0 MoKaWo=1 Endif ; ; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Jahresende <<<<<<<< If (StartTag <> 4) And (KaWo == 53) If StartTag > 4 KaWo.val = 52 Else KaWo.val = 1 Endif Endif If (StartTag == 3) And (KaWo == 53) And (Dif_Y MOD 4 <> 0) If StartTag > 4 KaWo.val = 52 Else KaWo.val = 1 Endif Endif
; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Jahresanfang <<<<<<<< If (Differenz + XTag) < 8 If StartTag == 5 KaWo.val = 53 Endif If StartTag > 5 KaWo.val = 52 Endif If StartTag < 5 KaWo.val = 1 Endif
MonAkt.val=MonStr.val JahrAkt.val=AKT_Y.val Call("Monat") END_FOCUS ; ==================== Unterprogramme ============= SUB(Monat)
If AKT_M == 1 If StartTag == 5 KWInt1.val=53 KWInt2.val=MoKaWo KWInt3.val=MoKaWo+1 KWInt4.val=MoKaWo+2 KWInt5.val=MoKaWo+3 KWInt6.val=MoKaWo+4 Endif If StartTag > 5 KWInt1.val=52 KWInt2.val=MoKaWo KWInt3.val=MoKaWo+1 KWInt4.val=MoKaWo+2 KWInt5.val=MoKaWo+3 KWInt6.val=MoKaWo+4 Endif If StartTag < 5 KWInt1.val=MoKaWo KWInt2.val=MoKaWo+1 KWInt3.val=MoKaWo+2 KWInt4.val=MoKaWo+3 KWInt5.val=MoKaWo+4 KWInt6.val=MoKaWo+5 Endif Else KWInt1.val=MoKaWo KWInt2.val=MoKaWo+1 KWInt3.val=MoKaWo+2 KWInt4.val=MoKaWo+3 KWInt5.val=MoKaWo+4 KWInt6.val=MoKaWo+5 Endif; >>>>>>> Monatstage auffuellen <<<<<<< TagPlatz1.val=1-MonDif TagPlatz2.val=2-MonDif TagPlatz3.val=3-MonDif TagPlatz4.val=4-MonDif TagPlatz5.val=5-MonDif TagPlatz6.val=6-MonDif If TagPlatz1.val <= 0 TagPlatz1.fc = 10 TagPlatz1.wr = 0 Else If AKT_D == 1-MonDif TagPlatz1.fc = 10 TagPlatz1.bc = 1 Else TagPlatz1.fc = 1 TagPlatz1.bc = 10 Endif TagPlatz1.wr = 1 Endif If TagPlatz2.val <= 0 TagPlatz2.fc = 10 TagPlatz2.wr = 0 Else If AKT_D == 2-MonDif TagPlatz2.fc = 10 TagPlatz2.bc = 1 Else TagPlatz2.fc = 1 TagPlatz2.bc = 10 Endif TagPlatz2.wr = 1 Endif If TagPlatz3.val <= 0 TagPlatz3.fc = 10 TagPlatz3.wr = 0 Else If AKT_D == 3-MonDif TagPlatz3.fc = 10 TagPlatz3.bc = 1 Else TagPlatz3.fc = 1 TagPlatz3.bc = 10 Endif TagPlatz3.wr = 1 Endif If TagPlatz4.val <= 0 TagPlatz4.fc = 10 TagPlatz4.wr = 0 Else If AKT_D == 4-MonDif TagPlatz4.fc = 10 TagPlatz4.bc = 1 Else TagPlatz4.fc = 1 TagPlatz4.bc = 10 Endif TagPlatz4.wr = 1 Endif If TagPlatz5.val <= 0 TagPlatz5.fc = 10 TagPlatz5.wr = 0 Else If AKT_D == 5-MonDif TagPlatz5.fc = 10 TagPlatz5.bc = 1 Else TagPlatz5.fc = 1 TagPlatz5.bc = 10 Endif TagPlatz5.wr = 1 Endif If TagPlatz6.val <= 0 TagPlatz6.fc = 10 TagPlatz6.wr = 0 Else If AKT_D == 6-MonDiff TagPlatz6.fc = 10 TagPlatz6.bc = 1 Else TagPlatz6.fc = 1 TagPlatz6.bc = 10 Endif TagPlatz6.wr = 1 Endif TagPlatz7.val=7-MonDif If AKT_D == 7-MonDif TagPlatz7.fc = 10 TagPlatz7.bc = 1 Else TagPlatz7.fc = 1 TagPlatz7.bc = 9 Endif TagPlatz8.val=8-MonDif If AKT_D == 8-MonDif TagPlatz8.fc = 10 TagPlatz8.bc = 1 Else TagPlatz8.fc = 1 TagPlatz8.bc = 10 Endif TagPlatz9.val=9-MonDif If AKT_D == 9-MonDif TagPlatz9.fc = 10 TagPlatz9.bc = 1 Else TagPlatz9.fc = 1 TagPlatz9.bc = 10 Endif TagPlatz10.val=10-MonDif TagPlatz11.val=11-MonDif TagPlatz12.val=12-MonDif TagPlatz13.val=13-MonDif TagPlatz14.val=14-MonDif TagPlatz15.val=15-MonDif TagPlatz16.val=16-MonDif TagPlatz17.val=17-MonDif TagPlatz18.val=18-MonDif TagPlatz19.val=19-MonDif TagPlatz20.val=20-MonDif TagPlatz21.val=21-MonDif TagPlatz22.val=22-MonDif If AKT_D == 22-MonDif TagPlatz22.fc = 10 TagPlatz22.bc = 1 Else TagPlatz22.fc = 1 TagPlatz22.bc = 10 Endif TagPlatz23.val=23-MonDif TagPlatz24.val=24-MonDif TagPlatz25.val=25-MonDif TagPlatz26.val=26-MonDif TagPlatz27.val=27-MonDif TagPlatz28.val=28-MonDif If MonLang + MonDif >= 29 TagPlatz29.val=29-MonDif TagPlatz29.fc = 1 TagPlatz29.wr = 1 Else TagPlatz29.bc =10 TagPlatz29.wr =0 Endif If MonLang + MonDif >= 30 TagPlatz30.val=30-MonDif TagPlatz30.fc = 1 TagPlatz30.wr = 1 Else TagPlatz30.val=29-MonDif TagPlatz30.fc = 10 TagPlatz30.wr = 0 Endif If MonLang + MonDif >= 31 TagPlatz31.val=31-MonDif TagPlatz31.fc = 1 TagPlatz31.wr = 1 Else TagPlatz31.fc = 10 TagPlatz31.wr = 0 Endif If MonLang + MonDif >= 32 TagPlatz32.val=32-MonDif TagPlatz32.fc = 1 TagPlatz32.wr = 1 Else TagPlatz32.fc = 10 TagPlatz32.wr = 0 Endif If MonLang + MonDif >= 33 TagPlatz33.val=33-MonDif TagPlatz33.fc = 1 TagPlatz33.wr = 1 Else TagPlatz33.fc = 10 TagPlatz33.wr = 0 Endif If MonLang + MonDif >= 34 TagPlatz34.val=34-MonDif TagPlatz34.fc = 1 TagPlatz34.wr = 1 Else TagPlatz34.fc = 10 TagPlatz34.wr = 0 Endif If MonLang + MonDif >= 35 TagPlatz35.val=35-MonDif TagPlatz35.fc = 1 TagPlatz35.wr = 1 Else TagPlatz35.fc = 10 TagPlatz35.wr = 0 Endif If MonLang + MonDif >= 36 TagPlatz36.val=36-MonDif TagPlatz36.fc = 1 TagPlatz36.wr = 1 Else TagPlatz36.fc = 10 TagPlatz36.wr = 0 Endif If MonLang + MonDif >= 37 TagPlatz37.val=37-MonDif TagPlatz37.fc = 1 TagPlatz37.wr = 1 Else TagPlatz37.wr = 0 Endif Endif If MonLang + MonDif >= 38 TagPlatz38.val=38-MonDif TagPlatz38.fc = 1 TagPlatz38.wr = 1 Else TagPlatz38.wr = 0 Endif Endif If MonLang + MonDif >= 39 TagPlatz39.val=39-MonDif TagPlatz39.fc = 1 TagPlatz39.wr = 1 Else TagPlatz39.wr = 0 Endif Endif Endif If MonLang + MonDif >= 40 TagPlatz40.fc = 1 TagPlatz40.wr = 1 Else TagPlatz40.wr = 0 Endif Endif Endif END_SUB //end ;====================== Daten ============ ; //A(Tag_Jahr) (1/"Montag"/"Dienstag"/"Mittwoch"/"Donnerstag"/"Freitag"/"Samstag"/"Sonntag"/0/0/0/0/0) (2/"Januar"/"Februar"/"Maerz"/"April"/"Mai"/"Juni"/"Juli"/"August"/"September"/"Oktober"/"November"/"Dezember") //END //A(Tag_Anz) (1/0/31/59/90/120/151/181/212/243/273/304/334) (2/0/31/60/91/121/152/182/213/244/274/305/335) (3/31/28/31/30/31/30/31/31/30/31/30/31) (4/31/29/31/30/31/30/31/31/30/31/30/31) //END
|
|
|
|
|
 |
 |
 |
0 Mitglieder:
|
|
|