第一部分 ReactNative的方法
/**
* ReactNative写在Component里面的方法.
* 获取随机的颜色值
*/
getColor() {
var r = Math.floor(Math.random() * 256);
var g = Math.floor(Math.random() * 256);
var b = Math.floor(Math.random() * 256);
return "rgb(" + r + ',' + g + ',' + b + ")";
}
/**
* 周日开始,一月有几周
* @param {Date} date
*/
static weekInMonthCount(date) {
let firstWeekDate = 1;// 默认第一周是本月1号 为了模拟本月1号是否为本月第1周的判断
if (date.getDay() === 1) { // 判断1号是周一
firstWeekDatek = 1;
} else if (date.getDay() === 0) { // 判断1号是周日
firstWeekDate = 8 - 7 + 1;
} else { // 判断1号是周二至周六之间
firstWeekDate = 8 - date.getDay() + 1;
}
date.setMonth(date.getMonth() + 1);
date.setDate(0);
let monthHasDays = date.getDate();// 本月天数
monthHasDays = date.getDate() - firstWeekDate + 1;
let hasWeek = Math.ceil(monthHasDays / 7); // 计算本月有几周
return hasWeek;
}
/**
* 按周一开始, 每月有多少周.
* 算法: 本月第一个周一开始的日期,统计为该月的第一周
* @param {年} year '2018'
* @param {月份} month '9'
*/
static weekInMonthMonday(year, month) {
let monthDays = 0; //每月参与计算周数的天数
let firstDay = new Date(year + '-' + month + '1').getDay(); //每月一日是一周中的第几天,
let monthHasDays = new Date(year, month, 0).getDate(); // 实际上每月的天数
switch (firstDay) {
case 0:
monthDays = monthHasDays - 1;
break;
case 1:
monthDays = monthHasDays - 0;
break;
case 2:
monthDays = monthHasDays - 6;
break;
case 3:
monthDays = monthHasDays - 5;
break;
case 4:
monthDays = monthHasDays - 4;
break;
case 5:
monthDays = monthHasDays - 3;
break;
case 6:
monthDays = monthHasDays - 2;
break;
}
return Math.ceil(monthDays / 7);
}
/**
* 获取指定年月的第一个周一的Date对象
* @param {year} year
* @param {month} month
* @returns Date
*/
static getWeekInMonthDate(year, month) {
let firstDaysPosition = new Date(year + '-' + month + '1').getDay(); //每月一日是一周中的第几天,
let firstWeekStartDay = '';
switch (firstDaysPosition) {
case 0:
firstWeekStartDay = 2;
break;
case 1:
firstWeekStartDay = 1;
break;
case 2:
firstWeekStartDay = 7;
break;
case 3:
firstWeekStartDay = 6;
break;
case 4:
firstWeekStartDay = 5;
break;
case 5:
firstWeekStartDay = 4;
break;
case 6:
firstWeekStartDay = 3;
break;
}
return new Date(year + '-' + month + '-' + firstWeekStartDay);
}
/**
* 获取一周里第N周的周一
* @param {year} year
* @param {month} month
* @param {week`s position} weekPosition
*/
static getMondaysDateInMonth(year, month, weekPosition) {
let date = this.getWeekInMonthDate(year, month);
let timeMills = date.getTime() + weekPosition * 1000 * 60 * 60 * 24 * 7
return new Date(timeMills);
}
{item.section.map((item, index, list) => {
// console.log(item)
if (item.state == 1) {
// 选中
return <TouchableOpacity onPress={() => {
}}>
<View style={styles.sectionView}>
<Text style={styles.sectionText}>{item.title}</Text>
</View>
</TouchableOpacity>
} else {
// 未选中
return <TouchableOpacity onPress={() => {
}}><View style={styles.unsectionView}>
<Text style={styles.unsectionText}>{item.title}</Text>
</View>
</TouchableOpacity>
}
})}
第二部分 原生js的方法.
第三部分typeJS 的fang'a
网友评论