我正在使用以下功能来查找所选日期的季度的最后一天。
现在,我只添加12 * Date.WEEK,但这并不是我想要的。
您能否看一下并咨询如何找到该季度的最后一天?我想在date2获得季度的最后一天。
function catcalc(cal) {
var date = cal.date;
var time = date.getTime();
var field = document.getElementById("x_Bis");
if (field == cal.params.inputField) {
field = document.getElementById("x_Von");
time -= 12*Date.WEEK; // substract one week
} else {
time += 12*Date.WEEK; // add one week 6*Date.DAY
}
var date2 = new Date(time);
field.value = date2.print("%d.%m.%Y");
我应该保留函数结构并保留变量名称。有两个相互关联的日历字段。用户可以从日历中选择任何日期(无需时钟时间)。该函数来自http://cimanet.uoc.edu/logica/v2/lib/jscalendar-1.0/doc/html/reference.html。
最佳答案
function getQ(date) {
var t=new Date(date.getTime()),year=t.getFullYear() // copy
t.setHours(0,0,0,0); // normalise to not get boundary errors
// note months start at 0 in JS
var q1 = new Date(year,2,31),
q2 = new Date(year,5,30),
q3 = new Date(year,8,30),
q4 = new Date(year,11,31);
if (t<=q1) return q1;
if (t<=q2) return q2;
if (t<=q3) return q3;
if (t<=q4) return q4;
}
getQ(new Date()); // today will return 31st of March
在您的代码中,我想您可以使用
function catcalc(cal) {
var date = cal.date;
var field = document.getElementById("x_Bis");
if (field == cal.params.inputField) {
field = document.getElementById("x_Von");
}
var date2 = getQ(date);
field.value = date2.print("%d.%m.%Y");
}