Javascript-Prototype函数,使用date函数运行模拟

Javascript-Prototype函数,使用date函数运行模拟,javascript,prototype,simulation,Javascript,Prototype,Simulation,我正在尝试向我的程序中添加两个函数。其中一个将原型的可用属性从true更改为false,并设置签出日期。结帐日期需要设置为当前日期减去一些随机天数(天数应随机) 我的尝试: Book.prototype.checkOut = function() { this.Available = false; var temp = new Date(1000000000); var date = new Date() - temp; var res = new Dat

我正在尝试向我的程序中添加两个函数。其中一个将原型的可用属性从true更改为false,并设置签出日期。结帐日期需要设置为当前日期减去一些随机天数(天数应随机)

我的尝试:

    Book.prototype.checkOut = function() {
    this.Available = false;
    var temp = new Date(1000000000);
    var date = new Date() - temp;
    var res = new Date(date);
    this.checkoutDate = res;
};
    Book.prototype.isOverdue = function() {
    var singleDay = 1000 * 60 * 60 * 24;
    var todayDate = new Date().getTime();
    var difference = todayDate - this.checkoutDate.getTime();
    if (Math.round(difference / singleDay) >= 14) {
        return true;
    }
    return false;
};
第二个检查当前日期和签出日期,如果大于14天,则返回true

我的尝试:

    Book.prototype.checkOut = function() {
    this.Available = false;
    var temp = new Date(1000000000);
    var date = new Date() - temp;
    var res = new Date(date);
    this.checkoutDate = res;
};
    Book.prototype.isOverdue = function() {
    var singleDay = 1000 * 60 * 60 * 24;
    var todayDate = new Date().getTime();
    var difference = todayDate - this.checkoutDate.getTime();
    if (Math.round(difference / singleDay) >= 14) {
        return true;
    }
    return false;
};
我所有的代码:

var Book=function(标题、可用、发布日期、签出日期、呼叫号码、作者){
this.title=标题;
这个.Available=Available;
this.publicationDate=publicationDate;
this.checkoutDate=checkoutDate;
this.callNumber=callNumber;
这个。作者=作者;
};
var Author=函数(firstName,lastName){
this.firstName=firstName;
this.lastName=lastName;
};
var Patron=函数(firstName、lastName、libCardNum、booksOut、fine){
this.firstName=firstName;
this.lastName=lastName;
this.libCardNum=libCardNum;
this.booksOut=booksOut;
this.fine=fine;
};
Book.prototype.checkOut=函数(){
这个.Available=false;
var temp=新日期(100000000);
变量日期=新日期()-临时;
var res=新日期(日期);
this.checkoutDate=res;
};
Book.prototype.checkIn=函数(){
这个.Available=true;
};
Book.prototype.isOverdue=函数(){
var单日=1000*60*60*24;
var todayDate=new Date().getTime();
var difference=todayDate-this.checkoutDate.getTime();
if(数学四舍五入(差分/单日)>=14){
返回true;
}
返回false;
};
Patron.prototype.read=功能(书籍){
this.booksOut.add(book);
}
customer.prototype.return=函数(书本){
this.booksOut.remove(this.booksOut.length);
}
var=[];
作者[0]=新作者(“Auth”,“One”);
作者[1]=新作者(“AutL”,“2”);
var目录=[];
目录[0]=新书('Bk1',正确,新日期(2001年1月21日),新日期(),123456,作者);
目录[1]=新书('Bk2',正确,新日期(2002年2月22日),新日期(),987656,作者);
目录[2]=新书('Bk3',正确,新日期(2003年3月23日),新日期(),092673,作者);
目录[3]=新书('Bk4',正确,新日期(2004年4月24日),新日期(),658342,作者);
目录[4]=新书('Bk5',正确,新日期(2005年5月25日),新日期(),345678,作者);
var用户=[];
用户[0]=新用户(“Pat1”、“Wat”、1、目录,0.00);
赞助人[1]=新赞助人('Pat2','Wot',1,目录,0.00);
用户[2]=新用户('Pat3','Wit',1,目录,0.00);
顾客[3]=新顾客('Pat4','Wet',1,目录,0.00);
赞助人[4]=新赞助人('Pat5','Wut',1,目录,0.00);
//while循环或for循环90天
//用于循环目录
//forloop over用户
//检查是否可用,如果可用,请检查图书
//如果不可用,请将登记簿签回
//检查一下,看看这本书是否过期了,如果过期了,加上罚款
//当向下循环时,用户可以查看他们的费用
对于(变量i=0;i<90;i++){
对于(var j=0;j
你说:

结帐日期需要设置为当前日期减去一些随机天数(天数应随机)

然而,在以下方面还没有辐射细化:

Book.prototype.checkOut = function() {
  this.Available = false;
  var temp = new Date(1000000000);
  var date = new Date() - temp;
  var res = new Date(date);
  this.checkoutDate = res; 
};
表达式
newdate(1000000000)
返回1970-01-12T13:46:40.000Z的新日期,因此

new Date() - temp;
返回一个较大的数字,如1491816607452,约为1726天。它为所有书籍的所有赞助人设定了相同的到期日,因此他们最终都会被处以相同的罚款

如果你想让顾客在10到20天的随机时间内结账,那么:

//返回开始和结束之间的随机整数
//不检查开始或结束是否为整数
函数randInRange(开始、结束){
返回Math.floor(Math.random()*(end-start+1))+start;
}
//作为演示函数的签出方法
var checkOut=function(){
//将randDays设置为10到20之间的随机天数
var randDays=randInRange(10,20);
//返回日期减去天数
变量日期=新日期();
date.setDate(date.getDate()-randDays);
返回日期;
};
//一些测试,10个日期随机10到20天前
对于(变量i=10;i;i--){
log(checkOut().toString());
}
你说:

结帐日期需要设置为当前日期减去一些随机天数(天数应随机)

然而,在以下方面还没有辐射细化:

Book.prototype.checkOut = function() {
  this.Available = false;
  var temp = new Date(1000000000);
  var date = new Date() - temp;
  var res = new Date(date);
  this.checkoutDate = res; 
};
表达式
newdate(1000000000)
返回1970-01-12T13:46:40.000Z的新日期,因此

new Date() - temp;
返回一个较大的数字,如1491816607452,约为1726天。它为所有书籍的所有赞助人设定了相同的到期日,因此他们最终都会被处以相同的罚款

如果你想让顾客在10到20天的随机时间内结账,那么:

//返回开始和结束之间的随机整数
//不检查开始或结束是否为整数
函数randInRange(开始、结束){
返回Math.floor(Math.random()*(end-start+1))+start;
}
//作为演示函数的签出方法
var checkOut=function(){
//将randDays设置为10到20之间的随机天数
var randDays=randInRange(10,20);
//返回日期减去天数
变量日期=新日期();
date.setDate(date.getDate()-randDays);
返回日期;
};
//一些测试,10个日期随机10到20天前
对于(var i=10;