美文网首页
工具类集锦-start at 2018-09-19

工具类集锦-start at 2018-09-19

作者: 槐树向北 | 来源:发表于2018-09-19 13:41 被阅读6次

第一部分 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

相关文章

网友评论

      本文标题:工具类集锦-start at 2018-09-19

      本文链接:https://www.haomeiwen.com/subject/hehinftx.html