Я пытаюсь использовать разные даты в условии для вычисления разницы дат.Мои расчеты основаны на следующих условиях:
Сценарий 1: Дата начала SAE <Дата начала приема препарата или нет Начало приема дозы препарата Продолжительность: «До начала лечения» </p>
Сценарий 2: Начало SAEДата> = Дата начала приема препарата и Дата начала приема препарата SAE <= Дата прекращения приема препарата или дата отсутствия приема препарата. Продолжительность приема дозы: Дата начала приема препарата SAE - Дата начала приема препарата + 1 + «дни» </p>
Сценарий 3: Дата начала приема препарата SAE> ПрепаратДата окончания Доза Длительность: SAE Дата начала - Дата окончания приема препарата + «дни после последней дозы»
Приведенный ниже код является модификацией первой версии, в которой использовались только 2 даты, и она работала правильно.Но когда применяется 3-я дата к условию, она больше не работает.Не уверен, что я делаю неправильно в функции DiffInDays.
<script src="includes/jmesa/jquery.min.js">// for OC versions before 3.1.4, use jquery-1.3.2.min.js !</script>
<script>
$.noConflict();
jQuery(document).ready(function($) {
var fieldDate1 = $("#onsetDT").parent().parent().find("input");
var fieldDate2 = $("#startDT").parent().parent().find("input");
var fieldDate3 = $("#endDT").parent().parent().find("input");
var fieldDiff = $("#Diff").parent().parent().find("input");
function OCDateToJDate(OCDate){
var dateParts = OCDate.split("-");
var JDate = new Date(1900,1,1);
JDate.setFullYear(dateParts[2]);
JDate.setMonth(Calendar._SMN.indexOf(dateParts[1]));
JDate.setDate(dateParts[0]);
return JDate;
}
function DiffInDays(OCDate1, OCDate2, OCDate3){
var msecPerDay = 1000 * 60 * 60 * 24;
var onsetdt=OCDateToJDate(OCDate1).getTime();
var startdt=OCDateToJDate(OCDate2).getTime();
var enddt=OCDateToJDate(OCDate3).getTime();
if (((onsetdt>=startdt) && (onsetdt<=enddt)) || (enddt==='')){
var days = Math.round((onsetdt - startdt)/ msecPerDay );
return days+1+" days";
}
if ((onsetdt<startdt) || (startdt==='')){
return "Prior to drug treatment"
}
if(onsetdt>startdt){
var days = Math.round((onsetdt-enddt) / msecPerDay );
return days+" days post last dose "; }
}
function calcDiff(){
var calculatedDifference = DiffInDays(fieldDate1.val(), fieldDate2.val(), fieldDate3.val());
if (fieldDiff.val() != calculatedDifference){
fieldDiff.val(calculatedDifference);
fieldDiff.change();
}
};
fieldDate1.blur(function(){ calcDiff(); });
fieldDate2.blur(function(){ calcDiff(); });
fieldDate3.blur(function(){ calcDiff(); });
fieldDiff.blur(function(){ calcDiff(); })
fieldDiff.focus(function(){
calcDiff();
})
$("#srl").focus(function(){
calcDiff();
});
$("#srh").focus(function(){
calcDiff();
});
})
</script>
Результат будет соответствовать условию, которое я упоминал ранее.
Любая помощь приветствуется.Спасибо!