/*
* 日历形式的个人排班 2014-11
*/
function gerenpaibai(tDate){
var date = tDate || new Date();
var maxinum = ['31','28','31','30','31','30','31','31','30','31','30','31'];
var date1 = new Date(date.getFullYear(),date.getMonth(),1);
this.dateObj = {
y : date.getFullYear(),
m : date.getMonth(),
d : date.getDate(),
t : maxinum[date.getMonth()],
f : date1.getDay()
};
}
gerenpaibai.prototype.paint = function(){
var self = this
, days = []
, obj = self.dateObj
, arrCell = []
, arrRow = [];
for(var i=0;i<obj.f;i++){
days.push(0);
}
for(var i=1;i<=obj.t;i++){
days.push(i);
}
while(days.length > 0){
var daynum = days.shift();
var lbl = Ti.UI.createLabel({
text:daynum ? daynum : "",
width:"14%",
textAlign:Ti.UI.TEXT_ALIGNMENT_CENTER,
top:0,
left:0,
height:30,
color:getDateDay(self.dateObj.y,self.dateObj.m,daynum)%6==0?'gray':'black'
});
if(self.dateObj.d == daynum){
lbl.setBackgroundColor('red');
lbl.setColor('white');
lbl.setBorderRadius(5);
}
arrCell.push(lbl);
}
var rows = Math.ceil( arrCell.length / 7 );
for(var r=0;r<rows;r++){
var rowview = Ti.UI.createView({layout:'horizontal', width:Ti.UI.FILL,height:50,top:(r+2)*50,left:0});
for(var c=0;c<7;c++){
if(arrCell.length){
rowview.add(arrCell.shift());
arrRow.push(rowview);
}
}
}
var box = Ti.UI.createScrollView({
contentWidth: 'auto',
contentHeight: 'auto',
showVerticalScrollIndicator: true,
showHorizontalScrollIndicator: true,
bottom:50
});
box.add(createMonthnameView(self.dateObj.y,self.dateObj.m));
box.add(createWeeknameView());
for(var i in arrRow){
box.add(arrRow[i]);
}
return box;
};
function createMonthnameView(y,m){
var monthnameview = Ti.UI.createLabel({
width:Ti.UI.FILL,
height:40,top:5,
textAlign:Ti.UI.TEXT_ALIGNMENT_CENTER,
text:y+'年'+m+'月',
font:{
fontWeight:'bold',
fontSize:18
}
});
return monthnameview;
}
//返回周名称视图(周一,周二……)
function createWeeknameView(){
var arr = ['日','一','二','三','四','五','六'];
var weeknameview = Ti.UI.createView({layout:'horizontal', width:Ti.UI.FILL,height:40,top:55,left:0});
for(var i in arr){
var lbl = Ti.UI.createLabel({
text:arr[i],
width:"14%",
height:40,
textAlign:Ti.UI.TEXT_ALIGNMENT_CENTER,
color:i%6==0?'gray':'black'
});
weeknameview.add(lbl);
}
return weeknameview;
}
function getDateDay(y,m,d){
return new Date(y,m,d).getDay();
}
module.exports = gerenpaibai;