国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

小白成長日記:寫個日歷

muzhuyu / 1515人閱讀

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

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

完成圖

思路

本月的天數

截取上月的天數

截取下月天數

今天給一個樣式

上月、下月切換

回到今天

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

html部分
<

{{year}}-{{month}}

>
{{item}}
{{item}}
本月天數

我主要是將日歷的天數分成了3部分,創建了3個數組來保存

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

接下來獲取本月的天數

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

當我們在創建本月數組的時候,我們只需要知道本月最后一天是多少號,便知道創建一個多少位的數組。

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

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

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

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

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

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

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

上月和下月按鈕

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

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

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

prevM(){
        let year,month
        if(this.month!==1){//不是一月,月份遞減,年份不變
            month=--this.month
            year=this.year
        }else{//否則年份遞減,月份變為12
            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)
    },
當天的樣式

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

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

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

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

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

源碼

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/90084.html

相關文章

  • 小白成長日記寫個省市區三級聯動

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

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

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

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

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

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

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

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

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

    lylwyy2016 評論0 收藏0

發表評論

0條評論

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