Вверх ↑
Этот топик читают: Гость
Гость
Ответов: 17029
Рейтинг: 0
#31: 2016-08-22 12:52:27 правка | ЛС | профиль | цитата


Редактировалось 15 раз(а), последний 2021-06-22 14:44:14
карма: 0

0
Ответов: 72
Рейтинг: 0
#32: 2016-08-23 04:46:04 ЛС | профиль | цитата
В том что новые сутки наступают не после полудня, а после полуночи.
С арифметикой 3-го класса я спорить не буду, но по логике если день рождения не наступил, то и 31 год быть не должно. Один день малость, но заранее не поздравляют

Редактировалось 1 раз(а), последний 2016-08-23 04:51:55
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#33: 2016-08-23 06:35:44 ЛС | профиль | цитата
Ну-ну.
shuster писал(а):
Я поставил 21.08.1985 мне выдал 31 год, 0 месяцев и 1 день, по состоянию на 22.08.2016
Давай на пальцах.
Только думай. Разбираем то, что ты написал.
"по состоянию на 22.08.2016" = СЕГОДНЯ
"Я поставил 21.08.1985" - ЭТО ВЧЕРА ( на года не смотри)
shuster писал(а):
но по логике если день рождения не наступил
Как же не наступил ? Он уже прошёл. 21.08 по отношению к 22.08 это ВЧЕРА
Значит день рождения был ВЧЕРА. Т.е., по-любому, ты ВЧЕРА праздновал и тебе ВЧЕРА БЫЛО 31 год, а СЕГОДНЯ уже 31 год и ПЕРВЫЙ день 32 года.
Т.е. твой возраст СЕГОДНЯ 31 год и 1 день.

Это по логике, да и по арифметике 3-го класса.
Анекдот писал(а):
Думай, Вася, думай


--- Добавлено в 2016-08-23 07:38:19

shuster писал(а):
Один день малость, но заранее не поздравляют
А поздравляют - это когда 0 месяцев и 0 дней

Редактировалось 10 раз(а), последний 2016-08-23 07:38:19
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 72
Рейтинг: 0
#34: 2016-08-23 09:48:23 ЛС | профиль | цитата
сглупил, бывает.
А как данную схему сделать автоматической, чтобы при выборе даты не нужно было нажимать на кнопку вычислить.

Add(MainForm,2953706,77,28)
{
Width=542
Height=303
Caption="Возраст (до дней)."
BorderStyle=1
Position=1
}
Add(InlineCode,8511652,154,210)
{
WorkPoints=#6:doCalc|
EventPoints=#8nResult|
DataPoints=#7ateINT|
Code=#15:unit HiAsmUnit;|09:interface|029:uses windows,kol,Share,Debug;|04:type|28: THiAsmClass = class(TDebug)|10: private|09: public|33: DateInt, onResult:THI_Event;|51: procedure doCalc(var _Data:TData; Index:Word);|05: end;|014:implementation|29:procedure THiAsmClass.doCalc;|20:var ST: TSystemTime;|25: Data,Birth : Integer;|27: Y, M, D, pD, pM : word;|24: sY, sM, sD : string;|5:begin|21: Data:=Trunc(Date());|33: Birth:= toIntegerEvent(DateInt);|22:If Data <= Birth then |5:begin|45: _hi_OnEvent(onResult, 'Вы ещё не родились');|6: Exit;|5:end; |32:GetLocalTime(ST); //Текущая дата|42ecodeDate(Birth,Y,M,D); // Дата рождения|0012:// Число лет|18:Y := St.wYear - Y;|31:If Y in [0,5..20] then sY:=' '|5:else |16:case Y mod 10 of|14:1: sY := ' ';|14:2..4: sY:=' ';|14:else sY:=' ';|4:end;|18:sY:=int2str(Y)+sY;|034: _hi_OnEvent(onResult, ' ' + sY );|4:end;|4:end.|
link(onResult,4824216:doWork3,[(256,216)])
link(DateINT,8438771ateInt,[(160,191)(90,191)])
}
Add(DatePicker,8438771,84,140)
{
Left=120
Top=5
Width=110
Height=21
Font=[MS Sans Serif,8,1,0,1]
DateMode=1
Point(DateInt)
link(onChange,9165230:doData,[])
}
Add(DoData,9165230,210,140)
{
Data=String()
link(onEventData,4824216:doWork2,[])
}
Add(HubEx,4824216,252,140)
{
link(onEvent,1318699:doText,[])
}
Add(Label,3423548,308,217)
{
Left=5
Top=7
Width=110
Font=[MS Sans Serif,8,1,16711680,1]
Caption="Дата рождения : "
AutoSize=1
Alignment=1
}
Add(Edit,1318699,308,140)
{
Left=175
Top=80
Width=150
Height=40
Text=""
}
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#35: 2016-08-23 11:39:41 ЛС | профиль | цитата
shuster писал(а):
сглупил, бывает.
Давай дальше
shuster писал(а):
новые сутки наступают не после полудня, а после полуночи.
А полночь - это сколько ?
shuster писал(а):
А как данную схему сделать автоматической, чтобы при выборе даты не нужно было нажимать на кнопку вычислить.
Что такое "сделать автоматической" ?
При чтении даты рождения, например из списка друзей, запросто, а при ручном вводе даты рождения это как ? А вдруг ты ошибся с вводом или ещё чего ?
Компьютер не настолько умная машина, чтобы знать - уже закончили вводить дату или еще нет.

Редактировалось 1 раз(а), последний 2016-08-23 11:40:24
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 72
Рейтинг: 0
#36: 2016-08-23 13:23:18 ЛС | профиль | цитата
оставил кнопку
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#37: 2016-08-24 09:35:20 ЛС | профиль | цитата
Окончательный вариант.
Перезалил на чужой файлообменник age_ok.rar
При попытке скачать из нашего файлообменника и открыть файл (после "исправлено" от Dilma) : Архив поврежден или файл имеет неизвестный формат
Размер скачанного файла соответствует размеру загруженного = 1.5 кб
Выкладываю здесь в тегах code
age_ok

Add(MainForm,2953706,105,140)
{
Width=337
Height=109
Caption="Возраст (до дней)."
BorderStyle=1
Position=1
}
Add(InlineCode,8511652,154,189)
{
@Hint=#7:Возраст|16:лет-месяцев-дней|
WorkPoints=#6:doCalc|
EventPoints=#8:onResult|
DataPoints=#7:DateINT|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|29:uses windows,kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|20: ST: TSystemTime;|9: public|33: DateInt, onResult:THI_Event;|51: procedure doCalc(var _Data:TData; Index:Word);|0:|5: end;|0:|14:implementation|0:|29:procedure THiAsmClass.doCalc;|20:var Birth : Integer;|27: Y, M, D, pD, pM : word;|24: sY, sM, sD : string;|5:begin|35: Birth:= toIntegerEvent(DateInt);|33: If Trunc(Date()) < Birth then |10: begin|51: _hi_OnEvent(onResult, 'Вы ещё не родились');|12: Exit;|10: end; |33: GetLocalTime(ST); //Текущая дата|43: DecodeDate(Birth,Y,M,D); // Дата рождения|66:// Вычисляем дни. ================================================|54:If (ST.wDay<D) Then // если дней текущих меньше дней|7: Begin|59: D := MonthDays[IsLeapYear(Y),ST.wMonth] + St.wDay - D;|20: dec(ST.wMonth);|5: end|25: else D := ST.wDay - D;|11: case D of|27: 1,21,31: sd := ' день';|32: 2..4,22..24: sd := ' дня'; |26: else sD := ' дней'; |6: end;|24: sD := int2str(d) + sD;|66:// число месяцев =================================================|23: IF (ST.wMonth<M) then|9: begin|31: M := 12 + ST.wMonth - M;|21: dec(St.wYear);|7: end|26: else M := ST.wMonth - M;|13: case M of|26: 1: sM := ' месяц ';|31: 2..4 : sM := ' месяца ';|33: else sM := ' месяцев '; |8: end;|24: sM := int2str(M)+sM;|0:|66:// Число лет =====================================================|23: Y := St.wYear - Y;|39: If Y in [0,5..20] then sY:=' лет '|10: else |21: case Y mod 10 of|25: 1: sY := ' год ';|29: 2..4: sY := ' года ';|24: else sY := ' лет ';|9: end;|27: sY := int2str(Y) + sY;|71:// Вывод результата ============================================== |47: _hi_OnEvent(onResult, 'Вам ' + sY + sM + sd);|4:end;|4:end.|
link(onResult,4824216:doWork3,[(200,195)])
link(DateINT,8438771:DateInt,[])
AddHint(-20,45,91,26,@Hint)
}
Add(DatePicker,8438771,154,140)
{
Left=120
Top=5
Width=110
Height=21
Font=[MS Sans Serif,8,1,0,1]
DateMode=1
Point(DateInt)
Point(onSetFocus)
link(onSetFocus,4824216:doWork1,[(200,153)])
}
Add(Button,12347084,105,189)
{
Left=235
Top=5
Width=80
Font=[Courier New,8,1,0,204]
Caption="ВЫЧИСЛИТЬ"
link(onClick,8511652:doCalc,[])
}
Add(Label,14611709,217,189)
{
Left=5
Top=40
Width=310
Height=28
Font=[MS Sans Serif,14,1,255,1]
Caption=""
AutoSize=1
Alignment=2
}
Add(HubEx,4824216,196,189)
{
link(onEvent,14611709:doText,[])
}
Add(Label,3423548,217,140)
{
Left=5
Top=7
Width=110
Font=[MS Sans Serif,8,1,16711680,1]
Caption="Дата рождения : "
AutoSize=1
Alignment=1
}


--- Добавлено в 2016-08-25 12:02:54

Начала работать загрузка файлов
http://forum.hiasm.com/getfile/37711

Редактировалось 16 раз(а), последний 2016-08-25 12:07:17
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1age_ok.rar [1.5KB] [557]
Ответов: 45
Рейтинг: 0
#38: 2017-02-15 21:58:52 ЛС | профиль | цитата
одну схемку хотел сделать но вот немножко не выходит у нас есть число (514) и нужно с него вычислить (года, месяци и дни), один из примеров
http://beta.hiasm.com/getfile/38024, может кто-то уже такое делал, подскажите.

вторая ссылка на проект
http://beta.hiasm.com/getfile/38025

сделал, но только работает с годами и месяцами, с днями немного напряг

Редактировалось 2 раз(а), последний 2017-02-18 16:41:28
карма: 0
всё что мешает нам жить это человеческий фактор который не имеющий границы ..
0
файлы: 1вычислить года,месяцы,дни.rar [1.9KB] [6021]
38
Сообщение
...
Прикрепленные файлы
(файлы не залиты)