2010-05-10 128 views
-1

我有這個任務,我不知道該怎麼做。 我需要找到在日人員的年齡,給出出生和死亡日期,有數據文件:帕斯卡人年齡計劃

8 
Albertas Einšteinas  1879 03 14 1955 04 18   
Balys Sruoga   1896 02 02 1947 10 16 
Antanas Vienuolis  1882 04 07 1957 08 17 
Ernestas Rezerfordas 1871 08 30 1937 10 17 
Nilsas Boras   1885 10 07 1962 11 18 
Nežiniukas Pirmasis  8 05 24 8 05 25 
Nežiniukas Antrasis  888 05 25 888 05 25 
Nežiniukas Trečiasis  1 01 01 125 01 01 

而且有結果文件看起來應該像:

1879 3 14 1955 4 18 27775 
1896 2 2 1947 10 16 18871 
1882 4 7 1957 8 17 27507 
1871 8 30 1937 10 17 24138 
1885 10 7 1962 11 18 28147 
8 5 24 8 5 25 1 
888 5 25 888 5 25 0 
1 1 1 125 1 1 45260 

很少有注意事項:所有februarys有28天。 我的年齡計算功能:

function AmziusFunc(Mas : TZmogus) : longint; 
    var amzius, max : longint; 
    begin 
    max := 125 * 365; 
    amzius := (Mas.mirY - Mas.gimY) * 365 + (Mas.mirM - Mas.gimM) * 31 + 
     (Mas.mirD - Mas.gimD); 
    if (amzius >= max) then amzius := 0; 
    AmziusFunc := amzius; 
    end; 

我應該在那裏改變什麼?謝謝。

+0

這是不可能回答這個問題,因爲它代表。例如,什麼是TZmogus? – 2010-05-10 17:43:45

+0

所以假設是沒有閏年? – Kasturi 2010-05-10 17:44:24

+0

Andreas - TZmogus - record = vardas:string [25],gimY,gimM,gimD,mirY,mirM,mirD:integer。 Kasturi - >是的,沒有閏年。 – bah 2010-05-10 17:46:55

回答

0
function AmziusFunc(Mas : TZmogus) : longint; 
    var amzius, max : longint; 
    begin 
    max := 125 * 365; 
    amzius := (Mas.mirY - Mas.gimY) * 365 + (Mas.mirM - Mas.gimM) * 31 + 
     (Mas.mirD - Mas.gimD); 
    if (amzius >= max) then amzius := 0; 
    AmziusFunc := amzius; 
    end;