|
|
|
Класс Date
|
|||
|---|---|---|---|
|
#18+
Помогите пожалуйста реализовать собственный класс Date, где дата хранится в виде целого числа дней, равного количеству дней от 1 января 1900 года. Нужно учесть високосные годы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 08:51 |
|
||
|
Класс Date
|
|||
|---|---|---|---|
|
#18+
В С++Builder есть класс TDateTime. Примерно, то что тебе нужно. Правда хранится в виде double (дробная часть - время) и стартовая дата другая. Классы поставляется с исходными текстами, там можно посмотреть, как все реализовано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 09:30 |
|
||
|
Класс Date
|
|||
|---|---|---|---|
|
#18+
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "DataTimeFunction.h" ///////////////////////////// DataTimeFunction.h" //--------------------------------------------------------------------------- #ifndef DataTimeFunctionH #define DataTimeFunctionH //--------------------------------------------------------------------------- double CalculateAge(TDateTime dtBirthDay, TDateTime dtCurrentDay); // User declarations //--------------------------------------------------------------------------- #endif /////////////////////////////// //--------------------------------------------------------------------------- #pragma package(smart_init) //--------------------------------------------------------------------------- double CalculateAge(TDateTime dtBirthDay, TDateTime dtCurrentDay) { //TODO: Add your source code here // сколько я понял, значение TDateTime хранится в размерности double // целая часть отвечает за колличество дней, // а дробная часть отвечает за часы, минуты, секунды, и тики. // переводим значения в целое число, что бы получить колличество дней // вычисляем колличество прожитых дней и делим на число дней в году double dAge; long int liBirthDay, liCurrentDay; if( dtBirthDay < dtCurrentDay) { liBirthDay = ( long int) dtBirthDay.Val; //дни от нуля до дня рождения liCurrentDay = ( long int) dtCurrentDay.Val; //дни от нуля до текущей даты dAge = ( liCurrentDay - liBirthDay);// / 365.; //прожитые дни делим на число дней в году } else dAge = (double) 1; if( dAge <= 0) dAge = (double) 1; return dAge; } //--------------------------------------------------------------------------- //Это вычисление колличество дней. Убери деление на 365. //дальше разберешься сам 1параметр начало отсчета 2параметр конец отсчета дней ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 09:53 |
|
||
|
Класс Date
|
|||
|---|---|---|---|
|
#18+
По-моему, вот этот клас гораздо удобнее чем Borland-овский: http://www.du.edu/~cyball/c_cpp/jdate.html Попробуй, лично мне он очень нравится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 10:29 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34090065&tid=2030144]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
170ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 498ms |

| 0 / 0 |
