亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

小白成長日記:寫個日歷

muzhuyu / 1560人閱讀

摘要:一周有天,返回的數(shù),如果上月最后一天是星期二,看下的日歷是補了三天,我們得到的是,所以為此,之后就是填充最后一天,用處理一下再排序,上一個月的數(shù)據(jù)就得到了。

每天進步一點點。寫個簡單的小日歷,依舊用vue,方便

完成圖

思路

本月的天數(shù)

截取上月的天數(shù)

截取下月天數(shù)

今天給一個樣式

上月、下月切換

回到今天

大致需要完成的東西有以上東西

html部分
<

{{year}}-{{month}}

>
{{item}}
{{item}}
本月天數(shù)

我主要是將日歷的天數(shù)分成了3部分,創(chuàng)建了3個數(shù)組來保存

 data(){
    return{
        prev:[],
        current:[],
        next:[],
        year:"",
        month:"",
        weeks:["日","一","二","三","四","五","六"],
    }
},

接下來獲取本月的天數(shù)

 methods:{
    currentInfo(){
        let date=new Date()
        this.year=date.getFullYear()//當(dāng)年
        this.month=date.getMonth()+1//當(dāng)月
        let currentDate=new Date(this.year,this.month,0)//當(dāng)月最后一天
        let currentArr=[...Array(currentDate.getDate()).fill(1)]//創(chuàng)建當(dāng)月數(shù)組,填充1
        this.current=currentArr.map((item,index)=>item+index)//做數(shù)組處理
},

當(dāng)我們在創(chuàng)建本月數(shù)組的時候,我們只需要知道本月最后一天是多少號,便知道創(chuàng)建一個多少位的數(shù)組。

在獲取時,有很多人使用了五花八門的方法,也有的人干脆為最后一天建立兩個12位的數(shù)組,將最后一天放進去,先判斷是不是閏年,再用數(shù)組取最后一天的值。

但其實new Date(Y,M,D),取D為0的時候能夠取到上一月的最后一天,也無需判斷是否是閏年,我偶然間發(fā)現(xiàn)的。有興趣的朋友可以追根溯源去找找原因。

上月
let prevDate=new Date(this.year,this.month-1,0)//上月最后一天
let prevArr=[...Array(prevDate.getDay()+1).fill(prevDate.getDate())]//創(chuàng)建上月數(shù)組,填充最后一天
this.prev=prevArr.map((item,index)=>item-index).sort((a,b)=>a-b)//做數(shù)組處理

這里先是取到上月最后一天,再取星期,這樣就能計算出上月需要有幾位補充到當(dāng)月,取當(dāng)月第一天也可以。一周有7天,返回0~6的數(shù),如果上月最后一天是星期二,看下windows的日歷是補了三天,我們prevDate.getDay()得到的是2,所以為此+1,之后就是填充最后一天,用map處理一下再排序,上一個月的數(shù)據(jù)就得到了。

下月補充進來的數(shù)據(jù)畢竟簡單,就不多說。完整代碼如下:

currentInfo(){
        let date=new Date()
        this.year=date.getFullYear()//當(dāng)年
        this.month=date.getMonth()+1//當(dāng)月
        let currentDate=new Date(this.year,this.month,0)//當(dāng)月最后一天
        let currentArr=[...Array(currentDate.getDate()).fill(1)]//創(chuàng)建當(dāng)月數(shù)組,填充1
        this.current=currentArr.map((item,index)=>item+index)//做數(shù)組處理
        /*上月*/
        let prevDate=new Date(this.year,this.month-1,0)//上月最后一天
        let prevArr=[...Array(prevDate.getDay()+1).fill(prevDate.getDate())]//創(chuàng)建上月數(shù)組,填充最后一天
        this.prev=prevArr.map((item,index)=>item-index).sort((a,b)=>a-b)//做數(shù)組處理
        /*下月*/
        let nextArr=[...Array(6-currentDate.getDay()).fill(1)]//創(chuàng)建下月數(shù)組,填充1
        this.next=nextArr.map((item,index)=>item+index)
    },  

這樣一個日歷的主要部分就完成了,和windows下的日歷對比下,一模一樣就說明沒錯

上月和下月按鈕

想要獲取上月的日歷,其實就是重新運行了currentInfo()函數(shù),只是月份取得上月,那很簡單,傳參

currentInfo(year,month){
        let date=new Date()
        this.year=year||date.getFullYear()//當(dāng)年
        this.month=month||date.getMonth()+1//當(dāng)月
        let currentDate=new Date(this.year,this.month,0)//當(dāng)月最后一天
        let currentArr=[...Array(currentDate.getDate()).fill(1)]//創(chuàng)建當(dāng)月數(shù)組,填充1
        this.current=currentArr.map((item,index)=>item+index)//做數(shù)組處理
        /*上月*/
        let prevDate=new Date(this.year,this.month-1,0)//上月最后一天
        let prevArr=[...Array(prevDate.getDay()+1).fill(prevDate.getDate())]//創(chuàng)建上月數(shù)組,填充最后一天
        this.prev=prevArr.map((item,index)=>item-index).sort((a,b)=>a-b)//做數(shù)組處理
        /*下月*/
        let nextArr=[...Array(6-currentDate.getDay()).fill(1)]//創(chuàng)建下月數(shù)組,填充1
        this.next=nextArr.map((item,index)=>item+index)
    }

我們將函數(shù)進行如上改造,當(dāng)有年月參數(shù)傳入時,就使用參數(shù);當(dāng)沒有年月參數(shù)傳入時,就使用系統(tǒng)時間的年月。之后只需要做兩個按鈕函數(shù)就行了

prevM(){
        let year,month
        if(this.month!==1){//不是一月,月份遞減,年份不變
            month=--this.month
            year=this.year
        }else{//否則年份遞減,月份變?yōu)?2
            month=12
            year=--this.year
        }   
        this.currentInfo(year,month)
    },
nextM(){
        let year,month
        if(this.month!==12){
            month=++this.month
            year=this.year
        }else{
            month=1
            year=++this.year
        } 
        this.currentInfo(year,month)
    },
當(dāng)天的樣式

該如何加當(dāng)天的樣式其實有很多方法,我是先找出當(dāng)天,然后和循環(huán)的index掛鉤,判斷是否需要加樣式
先在data中加入isDay這個數(shù)據(jù)

currentDay(){
        let date=new Date()                    
        if(this.year===date.getFullYear()&&this.month===date.getMonth()+1){//如果是當(dāng)年當(dāng)月
            this.isDay=date.getDate()-1//獲取到今天的號數(shù),因為index是從0循環(huán),所以這里-1
        }else{
            this.isDay=""
        }
    },

之后就是通過vue綁定樣式,當(dāng)(今天-1)=index,即:class="isDay===index?"active":"""給此添加一個active樣式

回到今天
backDay(){                   
    this.currentInfo()
    this.currentDay()
}
最后
 mounted(){
    this.currentInfo()
    this.currentDay()
}

利用生命周期函數(shù)進行初始化(這個應(yīng)該一開始就做)

源碼

https://github.com/yuyeqianxu...
希望能幫助到和我一樣的小白朋友們,有bug麻煩反饋,謝謝!

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/90084.html

相關(guān)文章

  • 小白成長日記寫個省市區(qū)三級聯(lián)動

    摘要:數(shù)據(jù)來源臺灣缺省完成圖初始化選完省之后部分請選擇請選擇暫無數(shù)據(jù)暫無數(shù)據(jù)一開始的初始狀態(tài)是省份可以選擇,利用來控制市和區(qū)的現(xiàn)實選項。當(dāng)省份未選擇時,市區(qū)因為沒有數(shù)據(jù),所以會選擇暫無數(shù)據(jù)。 依舊使用vue,不需要關(guān)注dom太方便了。數(shù)據(jù)來源(臺灣缺省):https://github.com/airyland/c... 完成圖 初始化 showImg(https://segmentfault...

    JerryC 評論0 收藏0
  • 小白成長日記寫個貪吃蛇

    摘要:貪吃蛇并不是通過操作來完成移動的,而是通過記錄貪吃蛇的路徑來將身體渲染出來。目前沒有內(nèi)置的操作符判斷對象的內(nèi)容是否相同。 還是用的vue,本來以為不合適,但想法錯了。貪吃蛇并不是通過操作dom來完成移動的,而是通過記錄貪吃蛇的路徑來將身體渲染出來。 一般移動元素,我們都是變動它的css達到目的,但我在寫貪吃蛇的時候發(fā)現(xiàn)這樣很難以實現(xiàn),參考了網(wǎng)上的資源,發(fā)現(xiàn)大部分人是通過記錄貪吃蛇的路徑...

    archieyang 評論0 收藏0
  • 小白成長日記:一步一步寫個輪播圖插件

    摘要:并不是所有人寫的代碼或者插件都適合小白使用,比如這是一個的滾動插件,大多數(shù)人使用了之后發(fā)現(xiàn)滾動不了,去作者提,其實是他們并不懂滾動的原理。 最近在這里看了一篇關(guān)于面試的文章《回顧自己三次失敗的面試經(jīng)歷》,作者三次倒在了輪播圖上。囧,所以我也寫個輪播圖看看。這次是用jQuery寫的,因為最近一直在研究jQuery插件的寫法,所以用jQuery寫的,而且我發(fā)現(xiàn),我vue用太多,完全不熟悉d...

    notebin 評論0 收藏0
  • Python 基礎(chǔ)起步(一)寫在開篇的話,寫給同為小白的你

    摘要:一個小白的成長日記大家好,這是我在飯否的第一篇筆記,先簡單介紹一下自己,我于年在北京工業(yè)大學(xué)本科畢業(yè),同年月來到法國巴黎工程師學(xué)校讀研,在年月畢業(yè)后加入了法國興業(yè)銀行擔(dān)任數(shù)據(jù)分析師的職位,主要負責(zé)數(shù)據(jù)質(zhì)量監(jiān)測,分析,潛在風(fēng)險預(yù)測,前端可視化 一個小白的成長日記 大家好,這是我在飯否的第一篇筆記,先簡單介紹一下自己,我于2016年在北京工業(yè)大學(xué)本科畢業(yè),同年9月來到法國巴黎Efrei工程...

    shadowbook 評論0 收藏0
  • 你的心事我全知曉——心情日記小程序丨實戰(zhàn)

    摘要:閑暇之余,聽媳婦嘀咕說要給她做一個能表達她每日心情的小程序,只能她在上面發(fā)東西。既然媳婦發(fā)話了,就花點心思做一個吧,因為沒有圖,所有布局全靠自己瞎編,下面結(jié)合圖片和代碼跟大家講解下實現(xiàn)過程,內(nèi)容略長,感興趣的可以一覽。 閑暇之余,聽媳婦嘀咕說要給她做一個能表達她每日心情的小程序,只能她在上面發(fā)東西。既然媳婦發(fā)話了,就花點心思做一個吧,因為沒有UI圖,所有布局全靠自己瞎編,下面結(jié)合圖片和...

    lylwyy2016 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<