After spending a considerable amount of time figuring out how to get selected dates between two months, I get the same error mentioned by mary. This seems like a bug to me. Can you help me? t works perfect if you don't select a date in the next month. Far as I can tell the array contains the correct set of dates. I have an alert so you can see it. Currently my code below only supports the end date occuring after the start date.
function days_between(date1, date2) {
// The number of milliseconds in one day
var ONE_DAY = 1000 * 60 * 60 * 24
// Convert both dates to milliseconds
var date1_ms = date1.getTime()
var date2_ms = date2.getTime()
// Calculate the difference in milliseconds
var difference_ms = Math.abs(date1_ms - date2_ms)
// Convert back to days and return
return Math.round(difference_ms / ONE_DAY)
}
function RadCalendar1_DateClick(sender, args) {
var shouldResetMultiSelect = false;
if (!sender.get_enableMultiSelect()) {
sender.set_enableMultiSelect(true);
shouldResetMultiSelect = true;
}
var selectedDates = sender.get_selectedDates();
if (selectedDates.length == 1) {
var datesToSelect = new Array();
var startDate = selectedDates[0];
var endDate = args.get_renderDay().get_date();
var dStartDate = new Date(startDate[0], startDate[1], startDate[2]);
var dEndDate = new Date(endDate[0], endDate[1], endDate[2]);
var iDateDiff = days_between(dStartDate, dEndDate);
if (1==1) {
if (1==1) {
var tempDate = new Date(startDate[0], startDate[1], startDate[2]);
for (var i = 0; i < iDateDiff; i++) {
var addDate = new Date(tempDate.getYear(), tempDate.getMonth() - 1, tempDate.getDate());
addDate.setDate(tempDate.getDate() + i);
var newDate = new Array(addDate.getYear(), addDate.getMonth() + 1, addDate.getDate());
Array.add(datesToSelect, newDate);
}
alert(datesToSelect.toString());
sender.selectDates(datesToSelect);
}
else {
var i = startDate[2];
var j = 1;
while (i != endDate[2] + 1) {
var newDate = new Array(startDate[0], startDate[1], startDate[2] - j);
alert(newDate);
Array.add(datesToSelect, newDate);
i--;
j++;
}
sender.selectDates(datesToSelect);
}
}
}
else {
sender.unselectDates(selectedDates);
}
if (shouldResetMultiSelect) {
sender.set_enableMultiSelect(false);
}
}
</script>