Help: Calendrier "borné" en Java

Julien -  
 Julien -
Bonjour à toutes et à tous,

en premier lieu, permettez moi de vous souhaiter une bonne année 2005.
Je viens vers vous car j'ai un petit souci dans de le développement de mon site internet.
En effet, j'ai créé un formulaire dans lequel l'internaute peut choisir une date de diffusion de son annonce (les champs qu'il aurait rempli auparavant). J'ai bien trouvé un java script pour insérer un calendrier mais celui-ci n'est pas "borné". Je m'explique: je voudrais qu'à l'affichage du calendrier, celui-ci ne considère valide que les dates sélectionnées entre J+2 et J+21. Ne connaissant pas bien le java j'aurai besoin de vos lumières. Je remercie par avance tous ceux qui pourraient m'apporter une solution (et ceux qui auraient essayer de me l'apporter!!)
@+
Julien

4 réponses

choubaka Messages postés 39984 Statut Modérateur 2 105
 
salut

c'est en java ou en javascript ???

parce que les deux n'ont rien à voir entre eux ...

Chouba,
Pochard d'assaut .. 
0
Julien
 
Bonjour Choubaka (ça fait drôle de dire ça!!!),
Alors le calendrier est en javascript.
En effet, mon site est en php mais certaines parties comportent du javascript (parties dont je n'ai pas géré l'intégration puisque je ne connais pas se langage).
Voilà, j'éspère que cela pourra t'aider à m'aider!!
Merci d'avance.
@+
Julien
0
choubaka Messages postés 39984 Statut Modérateur 2 105
 
Salut

Bonjour Choubaka (ça fait drôle de dire ça!!!), Ben pourquoi ?


bon pour revenir à ton truc, il faudrait voir le code pour pouvoir éventuellement étudier l'affaire ... Du moins le code du calendrier ...

Chouba,
Pochard d'assaut .. 
0
Julien
 
Salut Choubaka (et les autres!),

je vais tacher de mettre le code dès que je l'aurai! Je ne dispose pas de celui-ci pour le moment (c'est un ami qui m'a fait cette "mini" intégration.). Dès qu'il est à ma disposition, je me permettrai de revenir poster ici pour que vous puissiez voir ses spécificités. Je me doutai bien que cela aurait été utile dès mon 1er post mais ne connaissant pas le javascript, je pensai qu'il y aurait peut être un script "classique" pour ce genre de problème!
Dans tous les cas merci et @+
Julien
0
Julien
 
Bonjour à tous (et à Choubaka en particulier!)
Alors chose, promise, chose due, voilà le code du fameux calendrier en question. Il s'agit de Tigra Calendar (c'est 'un code gratuit). Je vous copie la page .js (car il me semble que c'est dans celle ci que les modifs sont à faire.
pour rappel, je veux qu'il y ait une restriction dans la sélection de la date: la date accepetée devant se situer entre J+2 et J+21 (à compte de la date du jour!).
J'ai regardé à droite à gauche (car je ne connais pas le javascript) et apparement ce sreait une histoire de rangeMin & rangeMax.....maintenant, je suis preneur de tout ce que vous pourriez m'apporter (de constructif of course!)
Merci et bonne soirée.
@+
Julien

Voilà le code:
// Title: Tigra Calendar
// URL: http://www.softcomplex.com/products/tigra_calendar/
// Version: 3.2 (European date format)
// Date: 10/14/2002 (mm/dd/yyyy)
// Note: Permission given to use this script in ANY kind of applications if
// header lines are left unchanged.
// Note: Script consists of two files: calendar?.js and calendar.html

// if two digit year input dates after this year considered 20 century.
var NUM_CENTYEAR = 30;
// is time input control required by default
var BUL_TIMECOMPONENT = false;
// are year scrolling buttons required by default
var BUL_YEARSCROLL = true;

var calendars = [];
var RE_NUM = /^\-?\d+$/;

function calendar1(obj_target) {

// assigning methods
this.gen_date = cal_gen_date1;
this.gen_time = cal_gen_time1;
this.gen_tsmp = cal_gen_tsmp1;
this.prs_date = cal_prs_date1;
this.prs_time = cal_prs_time1;
this.prs_tsmp = cal_prs_tsmp1;
this.popup = cal_popup1;

// validate input parameters
if (!obj_target)
return cal_error("Error calling the calendar: no target control specified");
if (obj_target.value == null)
return cal_error("Error calling the calendar: parameter specified is not valid target control");
this.target = obj_target;
this.time_comp = BUL_TIMECOMPONENT;
this.year_scroll = BUL_YEARSCROLL;

// register in global collections
this.id = calendars.length;
calendars[this.id] = this;
}

function cal_popup1 (str_datetime) {
this.dt_current = this.prs_tsmp(str_datetime ? str_datetime : this.target.value);
if (!this.dt_current) return;

var obj_calwindow = window.open(
'calendar.html?datetime=' + this.dt_current.valueOf()+ '&id=' + this.id,
'Calendar', 'width=350,height='+(this.time_comp ? 215 : 190)+
',status=no,resizable=no,top=200,left=200,dependent=yes,alwaysRaised=yes'
);
obj_calwindow.opener = window;
obj_calwindow.focus();
}

// timestamp generating function
function cal_gen_tsmp1 (dt_datetime) {
return(this.gen_date(dt_datetime) + ' ' + this.gen_time(dt_datetime));
}

// date generating function
function cal_gen_date1 (dt_datetime) {
return (
(dt_datetime.getDate() < 10 ? '0' : '') + dt_datetime.getDate() + "/"
+ (dt_datetime.getMonth() < 9 ? '0' : '') + (dt_datetime.getMonth() + 1) + "/"
+ dt_datetime.getFullYear()
);
}
// time generating function
function cal_gen_time1 (dt_datetime) {
return (
(dt_datetime.getHours() < 10 ? '0' : '') + dt_datetime.getHours() + ":"
+ (dt_datetime.getMinutes() < 10 ? '0' : '') + (dt_datetime.getMinutes()) + ":"
+ (dt_datetime.getSeconds() < 10 ? '0' : '') + (dt_datetime.getSeconds())
);
}

// timestamp parsing function
function cal_prs_tsmp1 (str_datetime) {
// if no parameter specified return current timestamp
if (!str_datetime)
return (new Date());

// if positive integer treat as milliseconds from epoch
if (RE_NUM.exec(str_datetime))
return new Date(str_datetime);

// else treat as date in string format
var arr_datetime = str_datetime.split(' ');
return this.prs_time(arr_datetime[1], this.prs_date(arr_datetime[0]));
}

// date parsing function
function cal_prs_date1 (str_date) {

var arr_date = str_date.split('/');

if (arr_date.length != 3) return cal_error ("Invalid date format: '" + str_date + "'.\nFormat accepted is dd/mm/yyyy.");
if (!arr_date[0]) return cal_error ("Invalid date format: '" + str_date + "'.\nNo day of month value can be found.");
if (!RE_NUM.exec(arr_date[0])) return cal_error ("Invalid day of month value: '" + arr_date[0] + "'.\nAllowed values are unsigned integers.");
if (!arr_date[1]) return cal_error ("Invalid date format: '" + str_date + "'.\nNo month value can be found.");
if (!RE_NUM.exec(arr_date[1])) return cal_error ("Invalid month value: '" + arr_date[1] + "'.\nAllowed values are unsigned integers.");
if (!arr_date[2]) return cal_error ("Invalid date format: '" + str_date + "'.\nNo year value can be found.");
if (!RE_NUM.exec(arr_date[2])) return cal_error ("Invalid year value: '" + arr_date[2] + "'.\nAllowed values are unsigned integers.");

var dt_date = new Date();
dt_date.setDate(1);

if (arr_date[1] < 1 || arr_date[1] > 12) return cal_error ("Invalid month value: '" + arr_date[1] + "'.\nAllowed range is 01-12.");
dt_date.setMonth(arr_date[1]-1);

if (arr_date[2] < 100) arr_date[2] = Number(arr_date[2]) + (arr_date[2] < NUM_CENTYEAR ? 2000 : 1900);
dt_date.setFullYear(arr_date[2]);

var dt_numdays = new Date(arr_date[2], arr_date[1], 0);
dt_date.setDate(arr_date[0]);
if (dt_date.getMonth() != (arr_date[1]-1)) return cal_error ("Invalid day of month value: '" + arr_date[0] + "'.\nAllowed range is 01-"+dt_numdays.getDate()+".");

return (dt_date)
}

// time parsing function
function cal_prs_time1 (str_time, dt_date) {

if (!dt_date) return null;
var arr_time = String(str_time ? str_time : '').split(':');

if (!arr_time[0]) dt_date.setHours(0);
else if (RE_NUM.exec(arr_time[0]))
if (arr_time[0] < 24) dt_date.setHours(arr_time[0]);
else return cal_error ("Invalid hours value: '" + arr_time[0] + "'.\nAllowed range is 00-23.");
else return cal_error ("Invalid hours value: '" + arr_time[0] + "'.\nAllowed values are unsigned integers.");

if (!arr_time[1]) dt_date.setMinutes(0);
else if (RE_NUM.exec(arr_time[1]))
if (arr_time[1] < 60) dt_date.setMinutes(arr_time[1]);
else return cal_error ("Invalid minutes value: '" + arr_time[1] + "'.\nAllowed range is 00-59.");
else return cal_error ("Invalid minutes value: '" + arr_time[1] + "'.\nAllowed values are unsigned integers.");

if (!arr_time[2]) dt_date.setSeconds(0);
else if (RE_NUM.exec(arr_time[2]))
if (arr_time[2] < 60) dt_date.setSeconds(arr_time[2]);
else return cal_error ("Invalid seconds value: '" + arr_time[2] + "'.\nAllowed range is 00-59.");
else return cal_error ("Invalid seconds value: '" + arr_time[2] + "'.\nAllowed values are unsigned integers.");

dt_date.setMilliseconds(0);
return dt_date;
}

function cal_error (str_message) {
alert (str_message);
return null;
}
0