美文网首页
工具类集锦-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