react native WeekCalender 周日歷 上一周 下一周

WeekCalender 可以上一周下一周

有網(wǎng)友用就簡單改改發(fā)上來好了

image.png
import React, { Component, Fragment } from 'react'
import {
    StyleSheet,
    Text,
    View,
    TouchableOpacity,
    Dimensions
} from 'react-native'

import moment from 'moment'

const weekTitle = ['日', '一', '二', '三', '四', '五', '六']

class WeekCalender extends Component {

    constructor(props) {
        super(props)
        this.state = {
            date: new Date()
        }
    }

    _onPress(date) {
        this.setState({
            date
        })
    }

    lastWeek = () => {
        this.setState({
            date: new Date(this.state.date).getTime() - 7 * 24 * 60 * 60 * 1000
        })
    }

    nextWeek = () => {
        this.setState({
            date: new Date(this.state.date).getTime() + 7 * 24 * 60 * 60 * 1000
        })
    }

    render() {
        let days = [] // 存放節(jié)點(diǎn)
        let date = new Date(this.state.date)
        let num = 7 - date.getDay() // 今天 分割點(diǎn)
        for (let i = 7 - num; i > 0; i--) { // 今天以前的日期
            let nowDate = new Date(date.getFullYear(), date.getMonth(), date.getDate() - i)
            let fmtNow = moment(nowDate).format('YYYY-MM-DD');
            let node = <TouchableOpacity onPress={this._onPress.bind(this, fmtNow)}><Text style={[styles.fs, styles.st]}>{nowDate.getDate()}</Text></TouchableOpacity>
            if (fmtNow === moment(date).format('YYYY-MM-DD')) {
                node = <View style={styles.curr}><TouchableOpacity onPress={this._onPress.bind(this, fmtNow)}><Text style={[styles.fs, styles.st]}>{nowDate.getDate()}</Text></TouchableOpacity></View>
            }
            days.push(node)
        }
        for (let i = 0; i < num; i++) { // 今天以后的日期 含今天
            let nowDate = new Date(date.getFullYear(), date.getMonth(), date.getDate() + i)
            let fmtNow = moment(nowDate).format('YYYY-MM-DD');
            let node = <TouchableOpacity onPress={this._onPress.bind(this, fmtNow)}><Text style={[styles.fs, styles.st]}>{nowDate.getDate()}</Text></TouchableOpacity>
            if (fmtNow === moment(date).format('YYYY-MM-DD')) {
                node = <View style={styles.curr}><TouchableOpacity onPress={this._onPress.bind(this, fmtNow)}><Text style={[styles.fs, styles.st, { color: '#FFFFFF' }]}>{nowDate.getDate()}</Text></TouchableOpacity></View>
            }
            days.push(node)
        }

        return (
            <Fragment>
                <View style={{ flexDirection: 'row' }}>
                    <Text style={{ width: Dimensions.get('window').width / 2, textAlign: 'center', color: '#316DE6', fontSize: 15 }} onPress={this.lastWeek}>上一周</Text>
                    <Text style={{ width: Dimensions.get('window').width / 2, textAlign: 'center', color: '#316DE6', fontSize: 15 }} onPress={this.nextWeek}>下一周</Text>
                </View>
                <View style={[styles.container01, styles.space]}>
                    <View style={styles.weekTitleContainer}>
                        {
                            weekTitle.map((item) => (
                                <View>
                                    <Text style={[styles.fs, styles.st]}>{item}</Text>
                                </View>
                            ))
                        }
                    </View>
                    <View style={[styles.weekTitleContainer, styles.fs]}>
                        {days}
                    </View>
                </View>
            </Fragment>
        )
    }

}
const styles = StyleSheet.create({
    weekTitleContainer: {
        height: 27,
        flexDirection: 'row',
        justifyContent: 'space-around'
    },
    fs: {
        fontSize: 13,
    },
    curr: {
        borderRadius: 24,
        backgroundColor: '#316DE6',
        width: 24,
        height: 24,
        textAlign: 'center',
        lineHeight: 24,
    },
    st: {
        width: 24,
        height: 24,
        textAlign: 'center',
        lineHeight: 24,
    },
    space: {
        flex: 1,
        paddingTop: 10,
        paddingHorizontal: 30,
        paddingBottom: 10
    }
})

export default WeekCalender

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子岛马,更是在濱河造成了極大的恐慌辜腺,老刑警劉巖够委,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件昼榛,死亡現(xiàn)場離奇詭異锌雀,居然都是意外死亡淤翔,警方通過查閱死者的電腦和手機(jī)翰绊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來旁壮,“玉大人监嗜,你說我怎么就攤上這事÷招常” “怎么了裁奇?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長麦撵。 經(jīng)常有香客問我刽肠,道長,這世上最難降的妖魔是什么免胃? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任音五,我火速辦了婚禮,結(jié)果婚禮上羔沙,老公的妹妹穿的比我還像新娘放仗。我一直安慰自己,他們只是感情好撬碟,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布诞挨。 她就那樣靜靜地躺著,像睡著了一般呢蛤。 火紅的嫁衣襯著肌膚如雪惶傻。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天其障,我揣著相機(jī)與錄音银室,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蜈敢,可吹牛的內(nèi)容都是我干的辜荠。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼抓狭,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼伯病!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起否过,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤午笛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后苗桂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體药磺,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年煤伟,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了癌佩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡便锨,死狀恐怖围辙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鸿秆,我是刑警寧澤酌畜,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布怎囚,位于F島的核電站卿叽,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏恳守。R本人自食惡果不足惜考婴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望催烘。 院中可真熱鬧沥阱,春花似錦、人聲如沸伊群。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽舰始。三九已至崇棠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間丸卷,已是汗流浹背枕稀。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人萎坷。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓凹联,卻偏偏與公主長得像,于是被迫代替她去往敵國和親哆档。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蔽挠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 2018年5月9日,星期三虐呻,巴西晴 01 周一中午象泵,同事小錢問我:“今天老穆又遇到什么事情了嗎?” 我還有點(diǎn)茫然:...
    巴西哥閱讀 864評(píng)論 15 16
  • 廣州塔也算廣州的新地標(biāo)了斟叼,來廣州將近3個(gè)月了偶惠,卻沒有好好逛過廣州,不該不該朗涩,因此決定從距離自己所住地方最近的廣州塔...
    賴文紅閱讀 491評(píng)論 0 1
  • 寒假終于來了忽孽,家的溫暖伴隨著冬日的寒冷包裹著我。不幸的消息劃碎了憧憬:我要補(bǔ)課谢床。 一切都按部就班的安排了下去兄一,課程...
    我語文老師姓糕閱讀 635評(píng)論 0 1
  • 最近的情緒又開始走入了低谷出革,沒有了豪情萬丈,跟每一次立下新目標(biāo)的心情完全不一樣渡讼。每一次想的時(shí)候都覺得自己馬上能成為...
    香草糖閱讀 158評(píng)論 0 0