KW nach Din 1355 bestimmen
-
Mit E-Mail geht kein Anhang, zum posten zu groß (1080 Zeilen
)
du müsstest mir deine E-Mail geben, oder ein Downloadportal zeigen
2. Ich habe nirgends gefunden, wie man z.B.
Button1->Caption="123";
Button2->Caption="123";
Button3->Caption="123";
Button4->Caption="123";
Button5->Caption="123";
Button6->Caption="123";
Button7->Caption="123";
usw. in Schleifen setzen kann
ansonsten verwende ich natürlich schleifen
-
Vielleicht mit Variablen? Buttonx? geht nicht, bin noch auf der Suche
-
Bashar schrieb:
mapper schrieb:
_ASSERT kannst du durch std::assert ersetzen, wenn du <cassert> inkludierst.
Ohne std::, assert ist ein Makro.
Oh, natürlich, danke.
Dieser Thread macht aber irgendwie keinen Sinn mehr, ein Fragesteller, der noch nicht einmal die kompletten Fehlermeldungen postet und ein Spammer, der alles, nur nichts zum Thema von sich gibt.
Traurig, das war mal anders.Noch mal zum Thema: Du suchst Arrays. Falls die Größe dynamisch sein soll, das Array also wachsen können soll, nimm gleich einen std::vector.
-
Endlich wieder zurück zum Thema
Ich habe alle Fehlermeldungen gepostet, aber egal
Vielen Dank, ohne des std:: geht es. Aber wie kann ich jetzt die Funktion aufrufen/benutzen?
-
@mapper: Das ist nicht dein Ernst, oder? Da beschäftigt sich einer mit GUI-APIs und schreibt Programme die genutzt werden sollen, und kennt Arrays nicht. Aber Hauptsache beim Thema bleiben, oder was?
Aber... zurück
Zum Thema: Was genau am Aufruf klappt bei dir nicht?
Du fügst den Funktionsaufruf mit den entsprechenden Parametern da ein, wo es sein soll, oder was ist verwirrend?
-
Ich weiß aber leider nicht, wie der Funktionsaufruf konkret aussehen soll, ich habe schon etliches durchprobiert, aber entweder er es passiert garnichts, oder Fehlermeldung
-
Programierheini schrieb:
Ich weiß aber leider nicht, wie der Funktionsaufruf konkret aussehen soll, ich habe schon etliches durchprobiert, aber entweder er es passiert garnichts, oder Fehlermeldung
Beschreibung! Zeig Code, Fehlermeldungen usw. wir sind keine Wahrsager.
-
short getKalenderwoche(short uTag, short uMonat, short uJahr) //diese Funktion möchte ich aufrufen, und habe keine Ahnung wie, weil ich des noch nie gemacht habe { short getTagDesJahres(const UINT uTag, const UINT uMonat, const UINT uJahr); short getWochentag(const UINT uTag, const UINT uMonat, const UINT uJahr); bool istEinSchaltjahr(const UINT uJahr); // Berechnung erfolgt analog DIN 1355, welche besagt: // Der erste Donnerstag im neuen Jahr liegt immer in der KW 1. // "Woche" ist dabei definiert als [Mo, ..., So]. short nTagDesJahres = getTagDesJahres(uTag, uMonat, uJahr); // Berechnen des Wochentags des 1. Januar: short nWochentag1Jan = getWochentag(1, 1, uJahr); // Sonderfälle Freitag und Samstag if (nWochentag1Jan >= 5) nWochentag1Jan = nWochentag1Jan - 7; // Sonderfälle "Jahresanfang mit KW - Nummer aus dem Vorjahr" if ( (nTagDesJahres + nWochentag1Jan) <= 1) { return getKalenderwoche(31, 12, uJahr - 1); } short nKalenderWoche = ((nTagDesJahres + nWochentag1Jan + 5) / 7); assert(nKalenderWoche >= 1); assert(nKalenderWoche <= 53); // 53 Kalenderwochen hat grundsätzlich nur ein Jahr, // welches mit einem Donnerstag anfängt ! // In Schaltjahren ist es auch mit einem Mittwoch möglich, z.B. 1992 // Andernfalls ist diese KW schon die KW1 des Folgejahres. if (nKalenderWoche == 53) { bool bIstSchaltjahr = istEinSchaltjahr(uJahr); if ( (nWochentag1Jan == 4) // Donnerstag || (nWochentag1Jan == -3) // auch Donnerstag || ((nWochentag1Jan == 3) && bIstSchaltjahr) || ((nWochentag1Jan == -4) && bIstSchaltjahr) ) { ; // Das ist korrekt und erlaubt } else nKalenderWoche = 1; // Korrektur des Wertes } return nKalenderWoche; //diesen Wert möchte ich als Variabel haben }
-
Programierheini schrieb:
short getKalenderwoche(short uTag, short uMonat, short uJahr) //diese Funktion möchte ich aufrufen, und habe keine Ahnung wie, weil ich des noch nie gemacht habe
-.-
getKalenderwoche(31, 1, 2012);
Oder mit deinen Parametern, ich glaube kaum dass du mit Magic Constants arbeiten wirst.
Außerdem, nimm doch gleich
boost::date_time
, dann musst du nicht das Rad neu erfinden.
-
Jetzt kommt aber:
[C++ Fehler] Unit1.cpp(713): E2268 Aufruf der undefinierten Funktion 'getKalenderwoche'
wenn ich short davor schreibe ändert sich aber leider nichts
-
Programierheini schrieb:
Jetzt kommt aber:
[C++ Fehler] Unit1.cpp(713): E2268 Aufruf der undefinierten Funktion 'getKalenderwoche'
wenn ich short davor schreibe ändert sich aber leider nichtsDas kann nicht sein. Sicher, dass du alle Source-Dateien im "Projekt" hast (also dem Compiler mitteilst)?
Oder definiere die Funktion gleich im Header (am besten mit inline), wenn es denn gar nicht anders geht...
-
Ich habs in den Header reingetan, aber jetzt kommt folgender Fehler:
[Linker Fehler] Unresolved external 'TForm1::getKalenderwoche(short, short, short)' referenced from C:\PROGRAMME\BORLAND\CBUILDER6\PROJECTS\KASSENPROGRAMM\UNIT1.OBJ
Ich hab keine ide mehr, was ich machen soll...
PS: wenn man die funktion eins höher "tut", kommen, wenn man es nicht im header definiert hat, zwei Linkerfehler, die ähnlich klingen.inline???
-
Hat sich erledigt, ich habe einfach ein neues Programm geschrieben, und alles andere nochmal hineinkopiert, und dann gings
:p
:schland:
-
Programierheini schrieb:
M
2. Ich habe nirgends gefunden, wie man z.B.
Button1->Caption="123";
...
usw. in Schleifen setzen kann
ansonsten verwende ich natürlich schleifenDa du den C++Builder verwendest könntest du mal in die FAQ des dazugehörigen Forums schauen. Siehe hier
http://www.c-plusplus.net/forum/39305
Darin findest du diesen Link unter "Komponenten beutzen - Dynamische Arrays von Komponenten oder Objekten":
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39211.html