Zeit.h 46 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711
  1. #ifndef Zeit_H
  2. #define Zeit_H
  3. #include "Betriebssystem.h"
  4. #include <time.h>
  5. namespace Framework
  6. {
  7. class Text; //! Text.h
  8. class Uhrzeit; //! Aus dieser Datei
  9. class Datum; //! Aus dieser Datei
  10. class Zeit; //! Aus dieser Datei
  11. class ZeitMesser; //! Aus dieser Datei
  12. //! Diese Klasse speichert eine Uhrzeit in form von Stunden, Minuten und Sekunden
  13. class Uhrzeit
  14. {
  15. private:
  16. int stunde, minute, sekunde;
  17. int ref;
  18. int update();
  19. public:
  20. //Erzeugt ein neues Uhrzeit Zeichnung mit den Standartwerten 00:00:00
  21. DLLEXPORT Uhrzeit();
  22. //Setzt die Uhrzeit durch kopieren.
  23. //! \param zeit Aus diesem Zeichnung werden die Werte für Stunde, Minute und Sekunde kopiert.
  24. DLLEXPORT int setUhrzeit( Uhrzeit *zeit );
  25. //Setzt die Uhrzeit.
  26. //! \param stunde Die Stunde der neuen Uhrzeit.
  27. //! \param minute Die Minute der neuen Uhrzeit.
  28. //! \param sekunde Die Sekunde der neuen Uhrzeit.
  29. //! \return Die Anzahl übriger Tage.
  30. //! Beispiel: setUhrzeit( 30, 30, 30 ); return: 1, gespeichert: 6:30:30
  31. DLLEXPORT int setUhrzeit( int stunde, int minute, int sekunde );
  32. //Setzt die Uhrzeit.
  33. //! \param format Eine Zeichenfolge, die bestimmt in welcher Form die Uhrzeit in (zeit) vorliegt. h=Stunde, i=Minute,s=Sekunde.
  34. //! \param zeit Eine Zeichenfolge die die neue Uhrzeit enthält.
  35. //! \return Die Anzahl übriger Tage.
  36. //! Beispiel: setUhrzeit( "h:i:s", "05:30:00" );
  37. //! Beispiel: setUhrzeit( "h:i:s", "30:30:00" ); return: 1, gespeichert: 6:30:00
  38. DLLEXPORT int setUhrzeit( const char *format, const char *zeit );
  39. //Setzt die Uhrzeit.
  40. //! \param format Eine Zeichenfolge, die bestimmt in welcher Form die Uhrzeit in (zeit) vorliegt. h=Stunde, i=Minute,s=Sekunde.
  41. //! \param zeit Ein Text Zeichnung, dass die neue Uhrzeit enthält.
  42. //! \return Die Anzahl übriger Tage.
  43. //! Beispiel: setUhrzeit( "h:i:s", new Text( "05:30:00" ) );
  44. //! Beispiel: setUhrzeit( "h:i:s", new Text( "30:30:00" ) ); return: 1, gespeichert: 6:30:00
  45. DLLEXPORT int setUhrzeit( const char *format, Text *zeit );
  46. //! setzt die Stunde.
  47. //! \param stunde Die Stunde, die gespeichert werden soll.
  48. //! \return Die Anzahl übriger Tage.
  49. //! Beispiel: setStunde( 30 ); return: 1 Tag, gespeicherte Stunden: 6
  50. DLLEXPORT int setStunde( int stunde );
  51. //! setzt die Minute.
  52. //! \param minute Die Minute, die gespeichert werden soll.
  53. //! \return Die Anzahl übriger Tage.
  54. //! Beispiel: Alte Zeit: 23:50:10, setMinute( 80 ); return: 1, gespeicherte Zeit: 01:10:10
  55. DLLEXPORT int setMinute( int minute );
  56. //! setzt die Sekunde.
  57. //! \param minute Die Sekunde, die gespeichert werden soll.
  58. //! \return Die Anzahl übriger Tage.
  59. //! Beispiel: Alte Zeit: 23:59:10, setSekunde( 80 ); return: 1, gespeicherte Zeit: 00:00:30
  60. DLLEXPORT int setSekunde( int sekunde );
  61. //! errechnet die Summe von dieser und einer anderen Uhrzeit und speichert diese.
  62. //! \param zeit Die Uhrzeit, deren Werte addiert werden sollen.
  63. //! \return Die Anzahl übriger Tage.
  64. //! Beispiel: Alte Zeit: 19:40:18, plusZeit( (10:05:30) ); return 1, gespeicherte Zeit: 05:45:48
  65. DLLEXPORT int plusUhrzeit( Uhrzeit *zeit );
  66. //! errechnet die Summe von dieser und einer anderen Uhrzeit und speichert diese.
  67. //! \param stunde Die Stunden die Werte addiert werden sollen.
  68. //! \param minute Die Minute die Werte addiert werden sollen.
  69. //! \param sekunde Die Sekunde die Werte addiert werden sollen.
  70. //! \return Die Anzahl übriger Tage.
  71. //! Beispiel: Alte Zeit: 19:40:18, plusZeit( 10, 5, 30 ); return 1, gespeicherte Zeit: 05:45:48
  72. DLLEXPORT int plusUhrzeit( int stunde, int minute, int sekunde );
  73. //! errechnet die Summe von dieser und einer anderen Uhrzeit und speichert diese.
  74. //! \param format Eine Zeichenfolge, die bestimmt in welcher Form die Uhrzeit in (zeit) vorliegt. h=Stunde, i=Minute,s=Sekunde.
  75. //! \param zeit Eine Zeichenfolge die die neue Uhrzeit enthält.
  76. //! \return Die Anzahl übriger Tage.
  77. //! Beispiel: plusUhrzeit( "h:i:s", "05:20:00" );
  78. //! Beispiel: Alte Zeit: 19:40:18, plusZeit( "h:i:s", "10:05:30" ); return 1, gespeicherte Zeit: 05:45:48
  79. DLLEXPORT int plusUhrzeit( const char *format, const char *zeit );
  80. //! errechnet die Summe von dieser und einer anderen Uhrzeit und speichert diese.
  81. //! \param format Eine Zeichenfolge, die bestimmt in welcher Form die Uhrzeit in (zeit) vorliegt. h=Stunde, i=Minute,s=Sekunde.
  82. //! \param zeit Ein Text Zeichnung, welches die neue Uhrzeit enthält.
  83. //! \return Die Anzahl übriger Tage.
  84. //! Beispiel: plusUhrzeit( "h:i:s", new Text( "05:20:00" ) );
  85. //! Beispiel: Alte Zeit: 19:40:18, plusZeit( "h:i:s", new Text( "10:05:30" ) ); return 1, gespeicherte Zeit: 05:45:48
  86. DLLEXPORT int plusUhrzeit( const char *format, Text *zeit );
  87. //! errechnet die Summe von dieser und einer anderen Uhrzeit und speichert diese.
  88. //! \param stunde die draufzurechnenden Stunden.
  89. //! \return Die Anzahl übriger Tage.
  90. //! Beispiel: Alte Zeit: 20:50:30, plusStunde( 10 ); return 1, gespeicherte Zeit: 6:50:30
  91. DLLEXPORT int plusStunde( int stunde );
  92. //! errechnet die Summe von dieser und einer anderen Uhrzeit und speichert diese.
  93. //! \param minute die draufzurechnenden Minuten.
  94. //! \return Die Anzahl übriger Tage.
  95. //! Beispiel: Alte Zeit: 23:50:30, plusMinute( 11 ); return 1, gespeicherte Zeit: 00:01:30
  96. DLLEXPORT int plusMinute( int minute );
  97. //! errechnet die Summe von dieser und einer anderen Uhrzeit und speichert diese.
  98. //! \param sekunde die draufzurechnenden Sekunden.
  99. //! \return Die Anzahl übriger Tage.
  100. //! Beispiel: Alte Zeit: 23:59:30, plusSekunde( 40 ); return 1, gespeicherte Zeit: 00:00:10
  101. DLLEXPORT int plusSekunde( int sekunde );
  102. //! zieht eine gegebene Uhrzeit von dieser ab und speichert das Ergebnis.
  103. //! \param zeit Die Uhrzeit, die von dieser abgezogen werden soll.
  104. //! \return Die Anzahl übriger Tage.
  105. //! Beispiel Alte Zeit: 10:40:18, minusUhrzeit( (19:05:30) ); return -1, gespeicherte Zeit: 15:34:48
  106. DLLEXPORT int minusUhrzeit( Uhrzeit *zeit );
  107. //! zieht eine gegebene Uhrzeit von dieser ab und speichert das Ergebnis.
  108. //! \param stunde Die Stunden, die von dieser Uhrzeit abgezogen werden sollen.
  109. //! \param minute Die Minuten, die von dieser Uhrzeit abgezogen werden sollen.
  110. //! \param sekunde Die Sekunden, die von dieser Uhrzeit abgezogen werden sollen.
  111. //! \return Die Anzahl übriger Tage.
  112. //! Beispiel Alte Zeit: 10:40:18, minusUhrzeit( 19, 05, 30 ); return -1, gespeicherte Zeit: 15:34:48
  113. DLLEXPORT int minusUhrzeit( int stunde, int minute, int sekunde );
  114. //! zieht eine gegebene Uhrzeit von dieser ab und speichert das Ergebnis.
  115. //! \param format Eine Zeichenfolge, die bestimmt in welcher Form die Uhrzeit in (zeit) vorliegt. h=Stunde, i=Minute,s=Sekunde.
  116. //! \param zeit Eine Zeichenfolge die die neue Uhrzeit enthält.
  117. //! \return Die Anzahl übriger Tage.
  118. //! Beispiel Alte Zeit: 10:40:18, minusUhrzeit( "h:i:s", "19:05:30" ); return -1, gespeicherte Zeit: 15:34:48
  119. DLLEXPORT int minusUhrzeit( const char *format, const char *zeit );
  120. //! zieht eine gegebene Uhrzeit von dieser ab und speichert das Ergebnis.
  121. //! \param format Eine Zeichenfolge, die bestimmt in welcher Form die Uhrzeit in (zeit) vorliegt. h=Stunde, i=Minute,s=Sekunde.
  122. //! \param zeit Ein Text Zeichnung, welches die neue Uhrzeit enthält.
  123. //! \return Die Anzahl übriger Tage.
  124. //! Beispiel Alte Zeit: 10:40:18, minusUhrzeit( "h:i:s", new Text( "19:05:30" ) ); return -1, gespeicherte Zeit: 15:34:48
  125. DLLEXPORT int minusUhrzeit( const char *format, Text *zeit );
  126. //! zieht eine gegebene Zeit von dieser ab und speichert das Ergebnis.
  127. //! \param stunde Die abzuziehenden Stunden.
  128. //! \return Die Anzahl übriger Tage.
  129. //! Beispiel Alte Zeit: 10:40:18, minusStunde( 19 ); return -1, gespeicherte Zeit: 15:40:18
  130. DLLEXPORT int minusStunde( int stunde );
  131. //! zieht eine gegebene Zeit von dieser ab und speichert das Ergebnis.
  132. //! \param minute Die abzuziehenden Minuten.
  133. //! \return Die Anzahl übriger Tage.
  134. //! Beispiel Alte Zeit: 00:40:18, minusStunde( 50 ); return -1, gespeicherte Zeit: 23:50:18
  135. DLLEXPORT int minusMinute( int minute );
  136. //! zieht eine gegebene Zeit von dieser ab und speichert das Ergebnis.
  137. //! \param sekunde Die abzuziehenden Sekunden.
  138. //! \return Die Anzahl übriger Tage.
  139. //! Beispiel Alte Zeit: 00:00:20, minusStunde( 50 ); return -1, gespeicherte Zeit: 23:59:30
  140. DLLEXPORT int minusSekunde( int sekunde );
  141. //! gibt die Stunde zurück.
  142. DLLEXPORT int getStunde() const;
  143. //! gibt die Minute zurück.
  144. DLLEXPORT int getMinute() const;
  145. //! gibt die Sekunde zurück.
  146. DLLEXPORT int getSekunde() const;
  147. //! gibt die Uhrzeit als Text formatiert zurück.
  148. //! \param format Eine Zeichenfolge, die bestimmt in welcher Form die Uhrzeit zurückgegeben werden soll. h=Stunde, i=Minute,s=Sekunde.
  149. //! Beispiel: Zeit: 5:40:39, getUhrzeit( "h:i:s" ); return: "5:40:39"
  150. DLLEXPORT Text *getUhrzeit( const char *format ) const;
  151. //! prüft, ob die Uhrzeit gleich zeit ist.
  152. //! \param zeit Die Uhrzeit, mit der diese verglichen werden soll.
  153. //! \return (true), wenn die beiden Zeiten geich sind. (false), wenn die Zeiten nicht gleich sind.
  154. DLLEXPORT bool istGleich( Uhrzeit *zeit ) const;
  155. //! prüft, ob die Uhrzeit gleich zeit ist.
  156. //! \param format Eine Zeichenfolge, die bestimmt in welcher Form die Uhrzeit in (zeit) vorliegt. h=Stunde, i=Minute,s=Sekunde.
  157. //! \param zeit Eine Zeichenfolge die die andere Uhrzeit enthält.
  158. //! \return (true), wenn die beiden Zeiten geich sind. (false), wenn die Zeiten nicht gleich sind.
  159. DLLEXPORT bool istGleich( const char *format, const char *zeit ) const;
  160. //! prüft, ob die Uhrzeit gleich zeit ist.
  161. //! \param format Eine Zeichenfolge, die bestimmt in welcher Form die Uhrzeit in (zeit) vorliegt. h=Stunde, i=Minute,s=Sekunde.
  162. //! \param zeit Ein Text Zeichnung, welches die andere Uhrzeit enthält.
  163. //! \return (true), wenn die beiden Zeiten geich sind. (false), wenn die Zeiten nicht gleich sind.
  164. DLLEXPORT bool istGleich( const char *format, Text *zeit ) const;
  165. //! prüft, ob die Uhrzeit gleich der übergebenen Zeit ist. Hier wird nicht beachtet, ob die gegebene Zeit eine gültige Uhrzeit ist.
  166. //! \param stunde Die Stunden der zu überprüfenden Uhrzeit
  167. //! \param minute Die Minuten der zu überprüfenden Uhrzeit
  168. //! \param sekunde Die Sekunden der zu überprüfenden Uhrzeit
  169. //! \return (true), wenn die beiden Zeiten geich sind. (false), wenn die Zeiten nicht gleich sind.
  170. DLLEXPORT bool istGleich( int stunde, int minute, int sekunde ) const;
  171. //! prüft, ob die Stunde gleich der gegebenen Stunde ist.
  172. //! \param stunde die zu prüfende Stunde.
  173. //! \return (true), wenn die Stunden gleich sind. (false), wenn sie nicht gleich sind.
  174. DLLEXPORT bool stundeGleich( int stunde ) const;
  175. //! prüft, ob die Minute gleich der gegebenen Minute ist.
  176. //! \param minute die zu prüfende Minute.
  177. //! \return (true), wenn die Minuten gleich sind. (false), wenn sie nicht gleich sind.
  178. DLLEXPORT bool minuteGleich( int minute ) const;
  179. //! prüft, ob die Sekunde gleich der gegebenen Sekunde ist.
  180. //! \param sekunde die zu prüfende Sekunde.
  181. //! \return (true), wenn die Sekunden gleich sind. (false), wenn sie nicht gleich sind.
  182. DLLEXPORT bool sekundeGleich( int sekunde ) const;
  183. //! prüft, ob die Uhrzeit kleiner als zeit ist.
  184. //! \param zeit Die zu prüfende Uhrzeit.
  185. //! \return (true), wenn die gespeicherte Zeit kleiner als die übergebene Zeit ist. (false) sonst.
  186. //! Beispiel: (5:30:00).istKleiner( (10:40:29) ); return true
  187. DLLEXPORT bool istKleiner( Uhrzeit *zeit ) const;
  188. //! prüft, ob die Uhrzeit kleiner als die übergebene Zeit ist.
  189. //! \param stunde Die Stunden der zu prüfenden Zeit.
  190. //! \param minute Die Minute der zu prüfenden Zeit.
  191. //! \param sekunde Die Sekunde der zu prüfenden Zeit.
  192. //! \return (true), wenn die gespeicherte Zeit kleiner als die übergebene Zeit ist. (false) sonst.
  193. //! Beispiel: (5:30:00).istKleiner( 10, 40, 29 ); return true
  194. DLLEXPORT bool istKleiner( int stunde, int minute, int sekunde ) const;
  195. //! prüft, ob die Uhrzeit kleiner als die übergebene Zeit ist.
  196. //! \param format Eine Zeichenfolge, die bestimmt in welcher Form die Uhrzeit in (zeit) vorliegt. h=Stunde, i=Minute,s=Sekunde.
  197. //! \param zeit Eine Zeichenfolge die die andere Uhrzeit enthält.
  198. //! \return (true), wenn die gespeicherte Zeit kleiner als die übergebene Zeit ist. (false) sonst.
  199. //! Beispiel: (5:30:00).istKleiner( "h:i:s", "10:40:29" ); return true
  200. DLLEXPORT bool istKleiner( const char *format, const char *zeit ) const;
  201. //! prüft, ob die Uhrzeit kleiner als die übergebene Zeit ist.
  202. //! \param format Eine Zeichenfolge, die bestimmt in welcher Form die Uhrzeit in (zeit) vorliegt. h=Stunde, i=Minute,s=Sekunde.
  203. //! \param zeit Ein Text Zeichnung, welches die andere Uhrzeit enthält.
  204. //! \return (true), wenn die gespeicherte Zeit kleiner als die übergebene Zeit ist. (false) sonst.
  205. //! Beispiel: (5:30:00).istKleiner( "h:i:s", "10:40:29" ); return true
  206. DLLEXPORT bool istKleiner( const char *format, Text *zeit ) const;
  207. //! prüft, ob die Uhrzeit größer als zeit ist.
  208. //! \param zeit Die zu prüfende Uhrzeit.
  209. //! \return (true), wenn die gespeicherte Zeit größer als die übergebene Zeit ist. (false) sonst.
  210. //! Beispiel: (5:30:00).istGrößer( (10:40:29) ); return false
  211. DLLEXPORT bool istLater( Uhrzeit *zeit ) const;
  212. //! prüft, ob die Uhrzeit größer als die übergebene Zeit ist.
  213. //! \param stunde Die Stunden der zu prüfenden Zeit.
  214. //! \param minute Die Minute der zu prüfenden Zeit.
  215. //! \param sekunde Die Sekunde der zu prüfenden Zeit.
  216. //! \return (true), wenn die gespeicherte Zeit größer als die übergebene Zeit ist. (false) sonst.
  217. //! Beispiel: (5:30:00).istGrößer( 10, 40, 29 ); return false
  218. DLLEXPORT bool istLater( int stunde, int minute, int sekunde ) const;
  219. //! prüft, ob die Uhrzeit größer als die übergebene Zeit ist.
  220. //! \param format Eine Zeichenfolge, die bestimmt in welcher Form die Uhrzeit in (zeit) vorliegt. h=Stunde, i=Minute,s=Sekunde.
  221. //! \param zeit Eine Zeichenfolge die die andere Uhrzeit enthält.
  222. //! \return (true), wenn die gespeicherte Zeit größer als die übergebene Zeit ist. (false) sonst.
  223. //! Beispiel: (5:30:00).istGrößer( "h:i:s", "10:40:29" ); return false
  224. DLLEXPORT bool istLater( const char *format, const char *zeit ) const;
  225. //! prüft, ob die Uhrzeit größer als die übergebene Zeit ist.
  226. //! \param format Eine Zeichenfolge, die bestimmt in welcher Form die Uhrzeit in (zeit) vorliegt. h=Stunde, i=Minute,s=Sekunde.
  227. //! \param zeit Ein Text Zeichnung, welches die andere Uhrzeit enthält.
  228. //! \return (true), wenn die gespeicherte Zeit größer als die übergebene Zeit ist. (false) sonst.
  229. //! Beispiel: (5:30:00).istGrößer( "h:i:s", "10:40:29" ); return false
  230. DLLEXPORT bool istLater( const char *format, Text *zeit ) const;
  231. //! Erhöht den Reference Counting Zähler
  232. //! \return this
  233. DLLEXPORT Uhrzeit *getThis();
  234. //! Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht
  235. //! \return 0
  236. DLLEXPORT Uhrzeit *release();
  237. };
  238. //! Diese Klasse speichert ein Datum in Form von Jahr, Monat und Tagen
  239. class Datum
  240. {
  241. private:
  242. int jahr, monat, tag;
  243. int ref;
  244. int *maxTage;
  245. void update();
  246. public:
  247. //! Erzeugt ein neues Datum Zeichnung mit den Standartwerten 0.0.0.
  248. DLLEXPORT Datum();
  249. //! Löscht das Datum.
  250. DLLEXPORT ~Datum();
  251. //! Setzt das Datum durch kopieren.
  252. //! \param datum Das zu speichernde Datum.
  253. DLLEXPORT void setDatum( Datum *datum );
  254. //! Setzt das Datum zu den übergebenen Werten.
  255. //! \param jahr Das Jahr des neuen Datums.
  256. //! \param monat Der Monat des neuen Datums.
  257. //! \param tag Der Tag des neuen Datums.
  258. DLLEXPORT void setDatum( int jahr, int monat, int tag );
  259. //! Setzt das Datum zu dem übergebenen Wert.
  260. //! \param format Eine Zeichenkette, die angibt in welcher Form das Datum in (datum) vorhanden ist. y=Jahr, m=Monat, d=Tag.
  261. //! \param datum Eine Zeichenkette, die das neue Datum enthält.
  262. //! Beispiel: setDatum( "y-m-d", "2016-01-25" );
  263. DLLEXPORT void setDatum( const char *format, const char *datum );
  264. //! Setzt das Datum zu dem übergebenen Wert.
  265. //! \param format Eine Zeichenkette, die angibt in welcher Form das Datum in (datum) vorhanden ist. y=Jahr, m=Monat, d=Tag.
  266. //! \param datum Ein Text Zeichnung, welches das neue Datum enthält.
  267. //! Beispiel: setDatum( "y-m-d", new Text( "2016-01-25" ) );
  268. DLLEXPORT void setDatum( const char *format, Text *datum );
  269. //! Ändert das Jahr des Datums.
  270. //! \param jahr Das neue Jahr.
  271. DLLEXPORT void setJahr( int jahr );
  272. //! Ändert den Monat des Datums.
  273. //! \param monat Der neue Monat.
  274. DLLEXPORT void setMonat( int monat );
  275. //! Ändert den Tag des Datums.
  276. //! \param tag Der neue Tag.
  277. DLLEXPORT void setTag( int tag );
  278. //! Addiert zum aktuellen Datum das übergebene Datum dazu und speichert das Ergebnis.
  279. //! \param datum Das zu addierende Datum.
  280. //! Beispiel: ( 1.11.1995 ).plusDatum( ( 5.2.7 ) ); neues Datum: 6.1.2003
  281. DLLEXPORT void plusDatum( Datum *datum );
  282. //! Addiert zum aktuellen Datum das übergebene Datum dazu und speichert das Ergebnis.
  283. //! \param jahr Das zu addierende Jahr.
  284. //! \param monat Der zu addierende Monat.
  285. //! \param tag Der zu addierende Tag.
  286. //! Beispiel: ( 1.11.1995 ).plusDatum( ( 7, 2, 5 ) ); neues Datum: 6.1.2003
  287. DLLEXPORT void plusDatum( int jahr, int monat, int tag );
  288. //! Addiert zum aktuellen Datum das übergebene Datum dazu und speichert das Ergebnis.
  289. //! \param format Eine Zeichenkette, die angibt in welcher Form das Datum in (datum) vorhanden ist. y=Jahr, m=Monat, d=Tag.
  290. //! \param datum Eine Zeichenkette, die das zu addierende Datum enthält.
  291. //! Beispiel: ( 1.11.1995 ).plusDatum( "d.m.y", "5.2.7" ); neues Datum: 6.1.2003
  292. DLLEXPORT void plusDatum( const char *format, const char *datum );
  293. //! Addiert zum aktuellen Datum das übergebene Datum dazu und speichert das Ergebnis.
  294. //! \param format Eine Zeichenkette, die angibt in welcher Form das Datum in (datum) vorhanden ist. y=Jahr, m=Monat, d=Tag.
  295. //! \param datum Ein Text Zeichnung, welches das zu addierende Datum enthält.
  296. //! Beispiel: ( 1.11.1995 ).plusDatum( "d.m.y", new Text( "5.2.7" ) ); neues Datum: 6.1.2003
  297. DLLEXPORT void plusDatum( const char *format, Text *datum );
  298. //! Addiert zum aktuellen Datum das übergebene Jahr dazu und speichert das Ergebnis.
  299. //! \param jahr Das zu addierende Jahr.
  300. //! Beispiel: ( 1.11.1995 ).plusJahr( 21 ); neues Datum: 1.11.2016
  301. DLLEXPORT void plusJahr( int jahr );
  302. //! Addiert zum aktuellen Datum den übergebenen Monat dazu und speichert das Ergebnis.
  303. //! \param monat Der zu addierende Monat.
  304. //! Beispiel: ( 1.11.1995 ).plusMonat( 13 ); neues Datum: 1.12.1996
  305. DLLEXPORT void plusMonat( int monat );
  306. //! Addiert zum aktuellen Datum den übergebenen Tag dazu und speichert das Ergebnis.
  307. //! \param tag Der zu addierende Tag.
  308. //! Beispiel: ( 1.1.2000 ).plusTag( 32 ); neues Datum: 2.2.2000
  309. DLLEXPORT void plusTag( int tag );
  310. //! Zieht vom aktuellen Datum das übergebene Datum ab und speichert das Ergebnis.
  311. //! \param datum Das abzuzuehende Datum.
  312. //! Beispiel: ( 2.12.1996 ).minusDatum( ( 1.1.1 ) ); neues Datum: 1.11.1995
  313. DLLEXPORT void minusDatum( Datum *datum );
  314. //! Zieht vom aktuellen Datum das übergebene Datum ab und speichert das Ergebnis.
  315. //! \param jahr Das abzuzuehende Jahr.
  316. //! \param monat Der abzuzuehende Monat.
  317. //! \param tag Der abzuzuehende Tag.
  318. //! Beispiel: ( 2.12.1996 ).minusDatum( 1, 1, 1 ); neues Datum: 1.11.1995
  319. DLLEXPORT void minusDatum( int jahr, int monat, int tag );
  320. //! Zieht vom aktuellen Datum das übergebene Datum ab und speichert das Ergebnis.
  321. //! \param format Eine Zeichenkette, die angibt in welcher Form das Datum in (datum) vorhanden ist. y=Jahr, m=Monat, d=Tag.
  322. //! \param datum Eine Zeichenkette, die das abzuziehende Datum enthält.
  323. //! Beispiel: ( 2.12.1996 ).minusDatum( "d.m.y", "1.1.1" ); neues Datum: 1.11.1995
  324. DLLEXPORT void minusDatum( const char *format, const char *datum );
  325. //! Zieht vom aktuellen Datum das übergebene Datum ab und speichert das Ergebnis.
  326. //! \param format Eine Zeichenkette, die angibt in welcher Form das Datum in (datum) vorhanden ist. y=Jahr, m=Monat, d=Tag.
  327. //! \param datum Ein Text Zeichnung, welches das abzuziehende Datum enthält.
  328. //! Beispiel: ( 2.12.1996 ).minusDatum( "d.m.y", new Text( "1.1.1" ) ); neues Datum: 1.11.1995
  329. DLLEXPORT void minusDatum( const char *format, Text *datum );
  330. //! Zieht vom aktuellen Datum das übergebene Jahr ab und speichert das Ergebnis.
  331. //! \param jahr Das abzuzuehende Jahr.
  332. //! Beispiel: ( 1.11.1996 ).minusJahr( 1 ); neues Datum: 1.11.1995
  333. DLLEXPORT void minusJahr( int jahr );
  334. //! Zieht vom aktuellen Datum den übergebenen Monat ab und speichert das Ergebnis.
  335. //! \param monat Der abzuzuehende Monat.
  336. //! Beispiel: ( 1.12.1996 ).minusMonat( 13 ); neues Datum: 1.11.1995
  337. DLLEXPORT void minusMonat( int monat );
  338. //! Zieht vom aktuellen Datum den übergebenen Tag ab und speichert das Ergebnis.
  339. //! \param monat Der abzuzuehende Tag.
  340. //! Beispiel: ( 5.2.2016 ).minusMonat( 11 ); neues Datum: 25.1.2016
  341. DLLEXPORT void minusTag( int tag );
  342. //! gibt das Jahr zurück.
  343. DLLEXPORT int getJahr() const;
  344. //! gibt der Monat zurück.
  345. DLLEXPORT int getMonat() const;
  346. //! gibt der Tag zurück.
  347. DLLEXPORT int getTag() const;
  348. //! Gibt das Datum als Text Zeichnung zurück.
  349. //! \param format Eine Zeichenkette, die angibt in welcher Form das Datum zurückgegeben werden soll. y=Jahr, m=Monat, d=Tag.
  350. //! Beispiel: ( 1.11.1995 ).getDatum( "y-m-d" ); return: "1995-11-1"
  351. DLLEXPORT Text *getDatum( const char *format ) const;
  352. //! Prüft, ob das Datum gleich dem übergebenen Datum ist.
  353. //! \param datum das zu prüfende Datum.
  354. //! \return (true), wenn das übergebene Datum dem gespeicherten entspricht. (false) sonnst.
  355. DLLEXPORT bool istGleich( Datum *datum ) const;
  356. //! Prüft, ob das Datum gleich dem übergebenen Datum ist.
  357. //! \param format Eine Zeichenkette, die angibt in welcher Form das Datum in (datum) vorhanden ist. y=Jahr, m=Monat, d=Tag.
  358. //! \param datum Eine Zeichenkette, die das zu überprüfende Datum enthält.
  359. //! \return (true), wenn das übergebene Datum dem gespeicherten entspricht. (false) sonnst.
  360. //! Beispiel: ( 1.11.1995 ).istGleich( "y-m-d", "1995-11-1" ); return: true
  361. DLLEXPORT bool istGleich( const char *format, const char *datum ) const;
  362. //! Prüft, ob das Datum gleich dem übergebenen Datum ist.
  363. //! \param format Eine Zeichenkette, die angibt in welcher Form das Datum in (datum) vorhanden ist. y=Jahr, m=Monat, d=Tag.
  364. //! \param datum Ein Text Zeichnung, welches das zu überprüfende Datum enthält.
  365. //! \return (true), wenn das übergebene Datum dem gespeicherten entspricht. (false) sonnst.
  366. //! Beispiel: ( 1.11.1995 ).istGleich( "y-m-d", new Text( "1995-11-1" ) ); return: true
  367. DLLEXPORT bool istGleich( const char *format, Text *datum ) const;
  368. //! Prüft, ob das Datum gleich dem übergebenen Datum ist.
  369. //! \param jahr Das Jahr des zu überprüfenden Datums.
  370. //! \param monat Der Monat des zu überprüfenden Datums.
  371. //! \param tag Der Tag des zu überprüfenden Datums.
  372. //! \return (true), wenn das übergebene Datum dem gespeicherten entspricht. (false) sonnst.
  373. //! Beispiel: ( 1.11.1995 ).istGleich( 1995, 11, 1 ); return: true
  374. DLLEXPORT bool istGleich( int jahr, int monat, int tag ) const;
  375. //! Prüft, ob das Jahr gleich dem übergebenen Jahr ist.
  376. //! \param jahr Das zu prüfende Jahr.
  377. //! \return (true), wenn das übergebene Jahr dem gespeicherten entspricht. (false) sonnst.
  378. DLLEXPORT bool jahrGleich( int jahr ) const;
  379. //! Prüft, ob der Monat gleich dem übergebenen Monat ist.
  380. //! \param monat Der zu prüfende Monat.
  381. //! \return (true), wenn der übergebene Monat dem gespeicherten entspricht. (false) sonnst.
  382. DLLEXPORT bool monatGleich( int monat ) const;
  383. //! Prüft, ob der Tag gleich dem übergebenen Tag ist.
  384. //! \param tag Der zu prüfende Tag.
  385. //! \return (true), wenn der übergebene Tag dem gespeicherten entspricht. (false) sonnst.
  386. DLLEXPORT bool tagGleich( int tag ) const;
  387. //! Prüft, ob das gespeicherte Datum kleiner als das übergebene ist.
  388. //! \param datum Das zu prüfende Datum.
  389. //! \return (true), wenn das gespeicherte Datum vor dem übergebenen liegt. (false) sonnst.
  390. //! Beispiel: ( 1.11.1995 ).istKleiner( ( 23.1.2016 ) ); return true
  391. DLLEXPORT bool istKleiner( Datum *datum ) const;
  392. //! Prüft, ob das gespeicherte Datum kleiner als das übergebene ist.
  393. //! \param jahr Das Jahr des zu prüfenden Datums.
  394. //! \param monat Der Monat des zu prüfenden Datums.
  395. //! \param tag Der Tag des zu prüfenden Datums.
  396. //! \return (true), wenn das gespeicherte Datum vor dem übergebenen liegt. (false) sonnst.
  397. //! Beispiel: ( 1.11.1995 ).istKleiner( 2016, 1, 23 ); return true
  398. DLLEXPORT bool istKleiner( int jahr, int monat, int tag ) const;
  399. //! Prüft, ob das gespeicherte Datum kleiner als das übergebene ist.
  400. //! \param format Eine Zeichenkette, die angibt in welcher Form das Datum in (datum) vorhanden ist. y=Jahr, m=Monat, d=Tag.
  401. //! \param datum Eine Zeichenkette, die das zu überprüfende Datum enthält.
  402. //! \return (true), wenn das gespeicherte Datum vor dem übergebenen liegt. (false) sonnst.
  403. //! Beispiel: ( 1.11.1995 ).istKleiner( "y, m, d", "2016, 1, 23" ); return true
  404. DLLEXPORT bool istKleiner( const char *format, const char *datum ) const;
  405. //! Prüft, ob das gespeicherte Datum kleiner als das übergebene ist.
  406. //! \param format Eine Zeichenkette, die angibt in welcher Form das Datum in (datum) vorhanden ist. y=Jahr, m=Monat, d=Tag.
  407. //! \param datum Ein Text Zeichnung, welches das zu überprüfende Datum enthält.
  408. //! \return (true), wenn das gespeicherte Datum vor dem übergebenen liegt. (false) sonnst.
  409. //! Beispiel: ( 1.11.1995 ).istKleiner( "y, m, d", new Text( "2016, 1, 23" ) ); return true
  410. DLLEXPORT bool istKleiner( const char *format, Text *datum ) const;
  411. //! Prüft, ob das gespeicherte Datum größer als das übergebene ist.
  412. //! \param datum Das zu prüfende Datum.
  413. //! \return (true), wenn das gespeicherte Datum hinter dem übergebenen liegt. (false) sonnst.
  414. //! Beispiel: ( 1.11.1995 ).istGrößer( ( 23.1.2016 ) ); return false
  415. DLLEXPORT bool istLater( Datum *datum ) const;
  416. //! Prüft, ob das gespeicherte Datum größer als das übergebene ist.
  417. //! \param jahr Das Jahr des zu prüfenden Datums.
  418. //! \param monat Der Monat des zu prüfenden Datums.
  419. //! \param tag Der Tag des zu prüfenden Datums.
  420. //! \return (true), wenn das gespeicherte Datum hinter dem übergebenen liegt. (false) sonnst.
  421. //! Beispiel: ( 1.11.1995 ).istGrößer( 2016, 1, 23 ); return false
  422. DLLEXPORT bool istLater( int jahr, int monat, int tag ) const;
  423. //! Prüft, ob das gespeicherte Datum größer als das übergebene ist.
  424. //! \param format Eine Zeichenkette, die angibt in welcher Form das Datum in (datum) vorhanden ist. y=Jahr, m=Monat, d=Tag.
  425. //! \param datum Eine Zeichenkette, die das zu überprüfende Datum enthält.
  426. //! \return (true), wenn das gespeicherte Datum hinter dem übergebenen liegt. (false) sonnst.
  427. //! Beispiel: ( 1.11.1995 ).istGrößer( "y, m, d", "2016, 1, 23" ); return false
  428. DLLEXPORT bool istLater( const char *format, const char *datum ) const;
  429. //! Prüft, ob das gespeicherte Datum größer als das übergebene ist.
  430. //! \param format Eine Zeichenkette, die angibt in welcher Form das Datum in (datum) vorhanden ist. y=Jahr, m=Monat, d=Tag.
  431. //! \param datum Ein Text Zeichnung, welches das zu überprüfende Datum enthält.
  432. //! \return (true), wenn das gespeicherte Datum hinter dem übergebenen liegt. (false) sonnst.
  433. //! Beispiel: ( 1.11.1995 ).istGrößer( "y, m, d", new Text( "2016, 1, 23" ) ) ); return true
  434. DLLEXPORT bool istLater( const char *format, Text *datum ) const;
  435. //! Erhöht den Reference Counting Zähler
  436. //! \return this
  437. DLLEXPORT Datum *getThis();
  438. //! Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht
  439. //! \return 0
  440. DLLEXPORT Datum *release();
  441. };
  442. //! Diese Klasse vereint die beiden Klassen Datum und Uhrzeit und speichert somit einen Zeitstempel mit Jahr, Monat, Tag, Stunde, Minute und Sekunde
  443. class Zeit
  444. {
  445. private:
  446. Datum *datum;
  447. Uhrzeit *uhrzeit;
  448. int ref;
  449. public:
  450. //! Erzeugt ein neues Zeichnung mit den Standartwerten 0.0.0 0:0:0.
  451. DLLEXPORT Zeit();
  452. //! Löscht das aktuelle Zeichnung.
  453. DLLEXPORT ~Zeit();
  454. //! Ändert die gespeicherte Zeit durch kopieren der Werte aus (zeit).
  455. //! \param zeit Die neue Zeit.
  456. DLLEXPORT void setZeit( Zeit *zeit );
  457. //! Ändert die gespeicherte Zeit.
  458. //! \param jahr Das neue Jahr.
  459. //! \param monat Der neue Monat.
  460. //! \param tag Det neue Tag.
  461. //! \param stunde Die neue Stunde.
  462. //! \param minute Die neue Minute.
  463. //! \param sekunde Die neue Sekunde.
  464. DLLEXPORT void setZeit( int jahr, int monat, int tag, int stunde, int minute, int sekunde );
  465. //! Ändert die gespeicherte Zeit.
  466. //! \param format Eine Zeichenkette, die angibt in welcher Form die neue Zeit in (zeit) vorhanden ist. y=Jahr, m=Monat, d=Tag, h=Stunde, i=Minute, s=Sekunde.
  467. //! \param zeit Eine Zeichenkette, die die neue Zeit enthält.
  468. //! Beispiel: setZeit( "y-m-d h:i:s", "2016-1-25 21:59:30" );
  469. DLLEXPORT void setZeit( const char *format, const char *zeit );
  470. //! Ändert die gespeicherte Zeit.
  471. //! \param format Eine Zeichenkette, die angibt in welcher Form die neue Zeit in (zeit) vorhanden ist. y=Jahr, m=Monat, d=Tag, h=Stunde, i=Minute, s=Sekunde.
  472. //! \param zeit Ein Text Zeichnung, welches die neue Zeit enthält.
  473. //! Beispiel: setZeit( "y-m-d h:i:s", new Text( "2016-1-25 21:59:30" ) );
  474. DLLEXPORT void setZeit( const char *format, Text *zeit );
  475. //! Ändert das gespeicherte Jahr.
  476. //! \param jahr Das neue Jahr.
  477. DLLEXPORT void setJahr( int jahr );
  478. //! Ändert den gespeicherten Monat.
  479. //! \param monat Der neue Monat.
  480. DLLEXPORT void setMonat( int monat );
  481. //! Ändert den gespeicherten Tag.
  482. //! \param tag Der neue Tag.
  483. DLLEXPORT void setTag( int tag );
  484. //! Ändert die gespeicherte Stunde.
  485. //! \param stunde Die neue Stunde.
  486. DLLEXPORT void setStunde( int stunde );
  487. //! Ändert die gespeicherte Minute.
  488. //! \param minute Die neue Minute.
  489. DLLEXPORT void setMinute( int minute );
  490. //! Ändert die gespeicherte Sekunde.
  491. //! \param sekunde Die neue Sekunde.
  492. DLLEXPORT void setSekunde( int sekunde );
  493. //! Addiert die übergebene Zeit und speichert das Ergebnis.
  494. //! \param zeit Die zu Addierende Zeit.
  495. DLLEXPORT void plusZeit( Zeit *zeit );
  496. //! Addiert die übergebene Zeit und speichert das Ergebnis.
  497. //! \param jahr Das zu addierende Jahr.
  498. //! \param monat Der zu addierende Monat.
  499. //! \param tag Der zu addierende Tag.
  500. //! \param stunde Die zu addierende Stunde.
  501. //! \param minute Die zu addierende Minute.
  502. //! \param sekunde Die zu addierende Sekunde.
  503. DLLEXPORT void plusZeit( int jahr, int monat, int tag, int stunde, int minute, int sekunde );
  504. //! Addiert die übergebene Zeit und speichert das Ergebnis.
  505. //! \param format Eine Zeichenkette, die angibt in welcher Form die neue Zeit in (zeit) vorhanden ist. y=Jahr, m=Monat, d=Tag, h=Stunde, i=Minute, s=Sekunde.
  506. //! \param zeit Eine Zeichenkette, die die zu addierende Zeit enthält.
  507. DLLEXPORT void plusZeit( const char *format, const char *zeit );
  508. //! Addiert die übergebene Zeit und speichert das Ergebnis.
  509. //! \param format Eine Zeichenkette, die angibt in welcher Form die neue Zeit in (zeit) vorhanden ist. y=Jahr, m=Monat, d=Tag, h=Stunde, i=Minute, s=Sekunde.
  510. //! \param zeit Ein Text Zeichnung, welches die zu addierende Zeit enthält.
  511. DLLEXPORT void plusZeit( const char *format, Text *zeit );
  512. //! Addiert die übergebene Zeit und speichert das Ergebnis.
  513. //! \param jahr Das zu addierende Jahr.
  514. DLLEXPORT void plusJahr( int jahr );
  515. //! Addiert die übergebene Zeit und speichert das Ergebnis.
  516. //! \param monat Der zu addierende Monat.
  517. DLLEXPORT void plusMonat( int monat );
  518. //! Addiert die übergebene Zeit und speichert das Ergebnis.
  519. //! \param tag Der zu addierende Tag.
  520. DLLEXPORT void plusTag( int tag );
  521. //! Addiert die übergebene Zeit und speichert das Ergebnis.
  522. //! \param stunde Die zu addierende Stunde.
  523. DLLEXPORT void plusStunde( int stunde );
  524. //! Addiert die übergebene Zeit und speichert das Ergebnis.
  525. //! \param minute Die zu addierende Minute.
  526. DLLEXPORT void plusMinute( int minute );
  527. //! Addiert die übergebene Zeit und speichert das Ergebnis.
  528. //! \param sekunde Die zu addierende Sekunde.
  529. DLLEXPORT void plusSekunde( int sekunde );
  530. //! Zieht die übergebene Zeit ab und speichert das Ergebnis.
  531. //! \param zeit Die abzuziehende Zeit.
  532. DLLEXPORT void minusZeit( Zeit *zeit );
  533. //! Zieht die übergebene Zeit ab und speichert das Ergebnis.
  534. //! \param jahr Das abzuziehende Jahr.
  535. //! \param monat Der abzuziehende Monat.
  536. //! \param tag Der abzuziehende Tag.
  537. //! \param stunde Die abzuziehende Stunde.
  538. //! \param minute Die abzuziehende Minute.
  539. //! \param sekunde Die abzuziehende Sekunde.
  540. DLLEXPORT void minusZeit( int jahr, int monat, int tag, int stunde, int minute, int sekunde );
  541. //! Zieht die übergebene Zeit ab und speichert das Ergebnis.
  542. //! \param format Eine Zeichenkette, die angibt in welcher Form die neue Zeit in (zeit) vorhanden ist. y=Jahr, m=Monat, d=Tag, h=Stunde, i=Minute, s=Sekunde.
  543. //! \param zeit Eine Zeichenkette, die die abzuziehende Zeit enthält.
  544. DLLEXPORT void minusZeit( const char *format, const char *zeit );
  545. //! Zieht die übergebene Zeit ab und speichert das Ergebnis.
  546. //! \param format Eine Zeichenkette, die angibt in welcher Form die neue Zeit in (zeit) vorhanden ist. y=Jahr, m=Monat, d=Tag, h=Stunde, i=Minute, s=Sekunde.
  547. //! \param zeit Ein Text Zeichnung, welches die abzuziehende Zeit enthält.
  548. DLLEXPORT void minusZeit( const char *format, Text *zeit );
  549. //! Zieht die übergebene Zeit ab und speichert das Ergebnis.
  550. //! \param jahr Das abzuziehende Jahr.
  551. DLLEXPORT void minusJahr( int jahr );
  552. //! Zieht die übergebene Zeit ab und speichert das Ergebnis.
  553. //! \param monat Der abzuziehende Monat.
  554. DLLEXPORT void minusMonat( int monat );
  555. //! Zieht die übergebene Zeit ab und speichert das Ergebnis.
  556. //! \param tag Der abzuziehende Tag.
  557. DLLEXPORT void minusTag( int tag );
  558. //! Zieht die übergebene Zeit ab und speichert das Ergebnis.
  559. //! \param stunde Die abzuziehende Stunde.
  560. DLLEXPORT void minusStunde( int stunde );
  561. //! Zieht die übergebene Zeit ab und speichert das Ergebnis.
  562. //! \param minute Die abzuziehende Minute.
  563. DLLEXPORT void minusMinute( int minute );
  564. //! Zieht die übergebene Zeit ab und speichert das Ergebnis.
  565. //! \param sekunde Die abzuziehende Sekunde.
  566. DLLEXPORT void minusSekunde( int sekunde );
  567. //! Gibt die gespeicherte Zeit als Text zurück.
  568. //! \param format Eine Zeichenkette, die angibt in welcher Form die neue Zeit zurückgegeben werden soll. y=Jahr, m=Monat, d=Tag, h=Stunde, i=Minute, s=Sekunde.
  569. DLLEXPORT Text *getZeit( const char *format ) const;
  570. //! Überprüft, ob die Zeit gleich der übergebenen Zeit ist.
  571. //! \param zeit die zu überprüfende Zeit.
  572. //! \return (true), wenn die Zeiten gleich sind. (false) sonst.
  573. DLLEXPORT bool istGleich( Zeit *zeit ) const;
  574. //! Überprüft, ob die Zeit gleich der übergebenen Zeit ist.
  575. //! \param format Eine Zeichenkette, die angibt in welcher Form die neue Zeit in (zeit) vorhanden ist. y=Jahr, m=Monat, d=Tag, h=Stunde, i=Minute, s=Sekunde.
  576. //! \param zeit Eine Zeichenkette, die die zu überprüfende Zeit enthält.
  577. //! \return (true), wenn die Zeiten gleich sind. (false) sonst.
  578. DLLEXPORT bool istGleich( const char *format, const char *zeit ) const;
  579. //! Überprüft, ob die Zeit gleich der übergebenen Zeit ist.
  580. //! \param format Eine Zeichenkette, die angibt in welcher Form die neue Zeit in (zeit) vorhanden ist. y=Jahr, m=Monat, d=Tag, h=Stunde, i=Minute, s=Sekunde.
  581. //! \param zeit Eine Text Zeichnung, welches die zu überprüfende Zeit enthält.
  582. //! \return (true), wenn die Zeiten gleich sind. (false) sonst.
  583. DLLEXPORT bool istGleich( const char *format, Text *zeit ) const;
  584. //! Überprüft, ob die Zeit gleich der übergebenen Zeit ist.
  585. //! \param jahr Das zu überprüfende Jahr.
  586. //! \param monat Der zu überprüfende Monat.
  587. //! \param tag Der zu überprüfende Tag.
  588. //! \param stunde Die zu überprüfende Stunde.
  589. //! \param minute Die zu überprüfende Minute.
  590. //! \param sekunde Die zu überprüfende Sekunde.
  591. //! \return (true), wenn die Zeiten gleich sind. (false) sonst.
  592. DLLEXPORT bool istGleich( int jahr, int monat, int tag, int stunde, int minute, int sekunde ) const;
  593. //! Gibt das Zeichnung zurück, in dem das Datum gespeichert wird mit erhöhtem Reference Counter.
  594. DLLEXPORT Datum *getDatum() const;
  595. //! Gibt das Zeichnung zurück, in dem das Datum gespeichert wird ohne erhöhten Reference Counter.
  596. DLLEXPORT Datum *zDatum() const;
  597. //! Gibt das Zeichnung zurück, in dem die Uhrzeit gespeichert wird mit erhöhtem Reference Counter.
  598. DLLEXPORT Uhrzeit *getUhrzeit() const;
  599. //! Gibt das Zeichnung zurück, in dem die uhrzeit gespeichert wird ohne erhöhten Reference Counter.
  600. DLLEXPORT Uhrzeit *zUhrzeit() const;
  601. //! Überprüft, ob die gespeicherte Zeit kleiner als die übergebene Zeit ist.
  602. //! \param zeit Die zu überprüfende Zeit.
  603. //! \return (true) wenn die gespeicherte Zeit vor der übergebenen Zeit liegt. (false) sonnst.
  604. DLLEXPORT bool istKleiner( Zeit *zeit ) const;
  605. //! Überprüft, ob die gespeicherte Zeit kleiner als die übergebene Zeit ist.
  606. //! \param jahr Das zu überprüfende Jahr.
  607. //! \param monat Der zu überprüfende Monat.
  608. //! \param tag Der zu überprüfende Tag.
  609. //! \param stunde Die zu überprüfende Stunde.
  610. //! \param minute Die zu überprüfende Minute.
  611. //! \param sekunde Die zu überprüfende Sekunde.
  612. //! \return (true) wenn die gespeicherte Zeit vor der übergebenen Zeit liegt. (false) sonnst.
  613. DLLEXPORT bool istKleiner( int jahr, int monat, int tag, int stunde, int minute, int sekunde ) const;
  614. //! Überprüft, ob die gespeicherte Zeit kleiner als die übergebene Zeit ist.
  615. //! \param format Eine Zeichenkette, die angibt in welcher Form die neue Zeit in (zeit) vorhanden ist. y=Jahr, m=Monat, d=Tag, h=Stunde, i=Minute, s=Sekunde.
  616. //! \param zeit Eine Zeichenkette, die die zu überprüfende Zeit enthält.
  617. //! \return (true) wenn die gespeicherte Zeit vor der übergebenen Zeit liegt. (false) sonnst.
  618. DLLEXPORT bool istKleiner( const char *format, const char *zeit ) const;
  619. //! Überprüft, ob die gespeicherte Zeit kleiner als die übergebene Zeit ist.
  620. //! \param format Eine Zeichenkette, die angibt in welcher Form die neue Zeit in (zeit) vorhanden ist. y=Jahr, m=Monat, d=Tag, h=Stunde, i=Minute, s=Sekunde.
  621. //! \param zeit Eine Text Zeichnung, welches die zu überprüfende Zeit enthält.
  622. //! \return (true) wenn die gespeicherte Zeit vor der übergebenen Zeit liegt. (false) sonnst.
  623. DLLEXPORT bool istKleiner( const char *format, Text *zeit ) const;
  624. //! Überprüft, ob die gespeicherte Zeit größer als die übergebene Zeit ist.
  625. //! \param zeit Die zu überprüfende Zeit.
  626. //! \return (true) wenn die gespeicherte Zeit nach der übergebenen Zeit liegt. (false) sonnst.
  627. DLLEXPORT bool istLater( Zeit *zeit ) const;
  628. //! Überprüft, ob die gespeicherte Zeit größer als die übergebene Zeit ist.
  629. //! \param jahr Das zu überprüfende Jahr.
  630. //! \param monat Der zu überprüfende Monat.
  631. //! \param tag Der zu überprüfende Tag.
  632. //! \param stunde Die zu überprüfende Stunde.
  633. //! \param minute Die zu überprüfende Minute.
  634. //! \param sekunde Die zu überprüfende Sekunde.
  635. //! \return (true) wenn die gespeicherte Zeit nach der übergebenen Zeit liegt. (false) sonnst.
  636. DLLEXPORT bool istLater( int jahr, int monat, int tag, int stunde, int minute, int sekunde ) const;
  637. //! Überprüft, ob die gespeicherte Zeit größer als die übergebene Zeit ist.
  638. //! \param format Eine Zeichenkette, die angibt in welcher Form die neue Zeit in (zeit) vorhanden ist. y=Jahr, m=Monat, d=Tag, h=Stunde, i=Minute, s=Sekunde.
  639. //! \param zeit Eine Zeichenkette, die die zu überprüfende Zeit enthält.
  640. //! \return (true) wenn die gespeicherte Zeit nach der übergebenen Zeit liegt. (false) sonnst.
  641. DLLEXPORT bool istLater( const char *format, const char *zeit ) const;
  642. //! Überprüft, ob die gespeicherte Zeit größer als die übergebene Zeit ist.
  643. //! \param format Eine Zeichenkette, die angibt in welcher Form die neue Zeit in (zeit) vorhanden ist. y=Jahr, m=Monat, d=Tag, h=Stunde, i=Minute, s=Sekunde.
  644. //! \param zeit Eine Text Zeichnung, welches die zu überprüfende Zeit enthält.
  645. //! \return (true) wenn die gespeicherte Zeit nach der übergebenen Zeit liegt. (false) sonnst.
  646. DLLEXPORT bool istLater( const char *format, Text *zeit ) const;
  647. //! Erhöht den Reference Counting Zähler
  648. //! \return this
  649. DLLEXPORT Zeit *getThis();
  650. //! Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht
  651. //! \return 0
  652. DLLEXPORT Zeit *release();
  653. };
  654. //! Diese Klasse kann messen, wie viel Zeit zwischen zwei Zeitpunkten verstrichen ist
  655. class ZeitMesser
  656. {
  657. private:
  658. double start;
  659. double ende;
  660. double messung;
  661. int ref;
  662. public:
  663. //! Erzeugt ein neues ZeitMesser Zeichnung
  664. DLLEXPORT ZeitMesser();
  665. //! Löscht das aktuelle Zeichnung
  666. DLLEXPORT ~ZeitMesser();
  667. //! legt den Startpunkt des zeitstoppens fest
  668. DLLEXPORT void messungStart();
  669. //! legt des Endpunkt der Zeitmessung fest
  670. DLLEXPORT void messungEnde();
  671. //! gibt den Abstand zwischen start und ende der Messung in Sekunden zurück
  672. DLLEXPORT double getSekunden() const;
  673. //! gibt den Abstand zwischen start und ende der Messung in Minuten zurück
  674. DLLEXPORT double getMinuten() const;
  675. //! gibt den Abstand zwischen start und ende der Messung in Stunden zurück
  676. DLLEXPORT double getStunden() const;
  677. //! Erhöht den Reference Counting Zähler.
  678. //! \return this.
  679. DLLEXPORT ZeitMesser *getThis();
  680. //! Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.
  681. //! \return 0.
  682. DLLEXPORT ZeitMesser *release();
  683. };
  684. //! gibt die aktuelle Uhrzeit zurück.
  685. DLLEXPORT Uhrzeit *getUhrzeit();
  686. //! gibt das aktuelle Datum zurück.
  687. DLLEXPORT Datum *getDatum();
  688. //! gibt die aktuelle Zeit( Datum und Uhrzeit ) zurück.
  689. DLLEXPORT Zeit *getZeit();
  690. //! prüft, ob jahr ein Schaltjahr ist.
  691. //! \param jahr Das zu überprüfende Jahr.
  692. //! \return (true), wenn das übergebene jahr ein Schaltjahr ist. (false) sonst.
  693. DLLEXPORT bool istSchaltjahr( int jahr );
  694. }
  695. #endif