簡體   English   中英

在Adobe Acrobat中計算年齡javascript

[英]calculate age javascript in adobe acrobat

我在以交互式PDF格式填充字段時遇到一些困難。 我正在使用JavaScript從表單中的2個日期字段(DateToday和ClientDOB)計算客戶端的當前年齡,我需要它來填充“ ClientAge”字段。 打開表單時,將自動填充DateToday字段。 我希望在用戶選擇ClientDOB之后填充ClientAge字段。

這就是我正在努力做到的。 我想應該很簡單。

DateToday-ClientDOB = ClientAge

這是我的代碼:

var DateToday_ = Date2Num(DateToday.formattedValue, "MM/DD/YYYY")
var ClientDOB_ = Date2Num(ClientDOB.formattedValue, "MM/DD/YYYY")
var diff = DateToday_ - ClientDOB_
ClientAge.value = Floor(diff / 365.25)

我不確定為什么選擇ClientDOB后為什么不會填充ClientAge字段。 任何答復將是有幫助的。 謝謝。

這是從網絡之外的某個地方獲取的。 不記得在哪里。 但是,我已經以多種形式使用了它,並且效果很好。 這個想法是,日期之間的差異以毫秒為單位,給定日期是過去固定日期的秒數。 一旦您知道日期之間的秒數差(在本例中為目前的DOB),就可以計算出多少年。 請注意,我的格式是英國日期格式(dd / mm / yy)。 如果您使用美國格式(mm / dd / yy),則必須進行適當的更改。

// get current date THIS NON AMERCAN DATE FORMAT
var oNow = new Date();
// get date from 'Demo.DOB' field
var oMyDate = util.scand('dd/mm/yy', this.getField('Demo.DOB').value);
// define second in milliseconds
var nSec = 1000;
// define minute in milliseconds
var nMin = 60 * nSec;
// define hour in milliseconds
var nHr = 60 * nMin;
// define day in milliseconds
var nDay = 24 * nHr;
// compute today as number of days from epoch date
var nNowDays = Number(oNow) / nDay;
// truncate to whole days
nNowDays = Math.floor(nNowDays);
// compute inputted date days from epoch data
var nMyDateDays = Number(oMyDate) / nDay;
// truncate to whole days
nMyDateDays = Math.floor(nMyDateDays);
// compute difference in the number of days
var nDiffDays = nNowDays - nMyDateDays;
// adjust difference for counting starting day as 1
++nDiffDays;
// convert days to years
var nYears = nDiffDays / 365.2525
// truncate to whole years
nYears = Math.floor(nYears);
// set field value number of years (nYears)
event.value = nYears;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM