00:00
好,我们继续来上课,那么本关呢,我们将学习我们的文件系统中的文件相关的操作,啊,那么在学习它之前呢,一样我们先去把我们上一关的作业再来看一下,首先第一点我们要干嘛?制作一个动态的万年历,对吧?那么制作动态万年历在这里边我们也一样,我们先来做一下,在这里边我们新建一个,比如说零一,叫做function。然后来一个这个日历。好了,那么在做这个动态发展的时候,我们是有一个要求的,对吧,第一件事干嘛是不是。给定。本月一号是星期几对吧?然后第二件事呢,是给定本月这个有多少天,是不是这样的?哎,那么我们在这个赛观中,我们学习了这个时间的函数,那么想要获取这个本月一号星期几,是不是可以直接去获取就可以了,对吧?包括获取本月有多少天,是不是这两个都是需要我们去获取的,对吧?那么也就是说我需要有一个人可以帮我干嘛呢?需要有一个功能对吧,就是第一件事需要。
01:02
有一个功能可以干嘛呢,可以。求出。哦。某年。某月中。一号是星期几,以及某年某月中一号有多少天?或者说某月。某年的某月啊,有多少天,是不是需要这么一个功能,对吧,只要我能拿到这个年,这个月和这个星期几和这个天数,我是不是通过这两个东西,我是不是就能求出万年历了,对不对,哎,就可以干嘛呀,便利万年历的表格了吧,对不对,哎,也就说要想做这个表格,可不可以做,可以做来,比如说在这里边啊,我们给他一个,给他一个什么呢?给他一个这个叫做。呃,So。Table table,那么要想用它让它能辨历出表格的话,那是不是这里边必须要得到这两个变量?对不对,哎,所以我需要有个功能帮我去求它,那怎么样的功能呢?在这里边看好了,我来一样,我去定义一个fun n fun n function,那这里面叫什么,叫做construct c。
02:14
STRU,好了,就用这个功能来帮忙干嘛呢?帮我初始化这个信息啊,初始化这个信息,那首先咱们要求出什么呀,本月的一号的星期几吧,那也就是说到了这个W等于什么呢?等于date来获取对吧,获取谁呀?对吧,如果获取个Y就代表的是代表的什么,代表是年吧,对不对。哎,所以这里边那要获取谁就为关键了,那咱们就来看一下啊,我们要想求出一号的,这个是星期几的话啊,在这里面找到我们PP手册中。来找到date函数,你看date在格式化的时候,是不是第一个是我们的这个字符串的这个参数啊,对吧,我要求出你看星期中的第几天是不是数值表示,那么如果我给我在求的时候,比如说在这里边我只给了一个W,这是不是代表星期中的第一天了,那好了,那先调用一下啊,来CUSTCD,当我调用它,调用它以后干嘛呢?我来输出这个W,你看它是几。
03:14
口一个多W。Let's follow it。下边零一,下边的LESSON17,下边的零一来45。对吧?哎,这里边已经告诉我今天确实是周五啊,那这里边说了零代表什么,代表的是周日,六代表周六,是不是零到六就是对应的我们周日到周六啊,哎,那现在我能拿出拿出今天的,但我想求什么,我想求出这个一号呢?那这块我是不是就要给什么,给某年某月。一号的这个时间戳啊,对不对,那时间戳我们怎么获取到,我是不是可以制作了makeup time是不是通过它来制作时间戳00:00:00。哪年呢,不是现在是月日年对吧?哪月呢,当年12月对吧?哪日呢,一日哪年的2020年是不是这个意思,哎,于求租这个年的这个月的一号是星期几,那咱们来看他的一号星期几啊,这个再来。
04:12
刷新到多少星期二对吗?那好了,我们来测试一下百度,这里边我们来打开一个万年历啊。我打一个日历。看一下吧。一号星几一号是星期二啊对吧,那现在我们来看是不是这样的刷新是不是二对吧?哎,那也就证明什么,证明我们拿了是没问题了,那好了,那我求到了一号是星期几以后,接下来呢,我是不是还要求什么,求我这个本月有多少天那多少天,比如说这里面来一个刀了。Day等于什么呢?等于date,那靠什么来求天呢?那是不是我还想上这里面去找对吧?那这里面你看指定月份有多少天。28~31天对吧,那我给他一个什么,给他一个T,是不是拿到我当前这个月份的天啊,到了地里外,那咱们来看是不是啊,在这里边我再来刷新有多少天,31天,这里边是不是有31天。
05:10
从一号到31号啊,那好了,那现在这两个数我能拿到了,拿到以后,那OK,那接下来干嘛,是不是这个函数要返回这两个东西对不对,所以在这里边我可以干嘛呢?我可以给它做成一个数组来给他返回,我也干嘛呢,给它拼接,比如说在这块啊,叫做返回。年终。年中。月的天数对吧,以及年终。月份的一号是周几,就返馈这两个,哎,所以这里面我直接I t return什么呢?Return一个这个到W,然后连接上一个Dollar dayy好了。这说返回了一个字符串对不对?哎,那好,那返回完以后,现在咱们来看啊,这个时候我这个孩子在哪调用呢?是不是只有他才需要这些这个信息啊,所以我在这里面来调用来你看好了,到了给我一个字串来,等于这个东西,那我一调用它是不是就对应了得到了这两个东西,哎,得到这两个东西,那咱们来看啊,这里边未安装对P。
06:12
Dup来打印,打印谁的打印这个SSPR啊,打印SSPR以后来再来刷新,诶不行,为什么,因为我没调用这个函数吧,来在这里面我调用一下啊。得了调换函数,对换函数以后,这个时候你来看我是不是拿到一个二和一个31,其中这个二是什么?二是不是我的这个周啊周几啊,对吧,31是我本月有多少天,所以我在通过这个字算50万获取到这个内容。对吧?那怎么获取呢?我第一种方式看好了,我先把这个字符串是不是可以通过这个逗号分割成数组对吧?我这么做的目的就是为了大家再去练一下这个字符串的函数啊X explo通过逗号对吧?来分割哪个字块分割这个串,这个时候它是不会给我返回对应的一个数组啊,对吧?比如说还叫SSPR啊,那这块我打印这个SSPR,你看这不就是一个数组。是不是一个数组,那好了,我接下来是不是就把这个数组的这个值赋值给变量啊,对吧,而且这个数组注意看啊,它是一个索引数组,看到了吧,那接然是所引数组,我就可以干嘛直接使用这么一个函数list括号来给它赋值,赋值给谁这个数组中的第一个参数,第一个值,第一个元素我复值给它到了W,第二个元素我复值给它到Z,看到了吧,那好了,这里面干嘛叫做什么呀。
07:20
就。字符串分割成索引数组。数组后对吧,使用什么呀,List啊。一组变量赋值啊,这个时候他就会把这个所引数度零下标赋值给它,把一向标赋值给了这个D,所以在这块我们再来为压光DP打印这个Dollar w。和。打印这个。到了day的时候,好,那这个时候再来看刷新,我是不是拿到了二和31,哎,那么拿到这两个数了,那OK,那就够用了,够用了,接下来干嘛?接下来我是不是就可以便历表格了,那便利表格那在这里边我就开始进行正常的循环输出了来,我先IOIO一个什么IO一个table border等于e Li等于一个center,然后呢,再给它一个宽度。
08:13
等于800。好了,然后在这里边我再来艾一个结束的T,结束的table,在这里边我们先在去标写它的行T2。结束的TR分割对吧,这里边。再来口,然后这里边放的是我们的TH,先给我们的表头啊TH结束的TH,然后这里边是星星日,我们C喂喂喂喂喂喂好了。来多一个啊,来星期一。二。三。四。You。六。把它剪掉啊好了,那现在完事了,我的这个表头已经有了,对吧,这会我们一样再来刷新,你看表头已经有了,对吧?表头已经有了,有接下来是不是就开始循环这个数据了,那循环数据一样,我定义一个变量Dollar um等于一个1VIEW循环Dollar um Dollar了ANU。
09:11
M小于等于谁呀,是不是们我得到了这个D,哎,然后在这里边开始继续外增循环,我让它控制是什么行。结束的行,而里边的循环是不是就列的输出了,那也就是放循环到了I等于零,到了I小于小于三小于七,它是固定的对吧,到了I加加,那加加完以后,在这里边我来输出什么,输出这个TD结束的TD,然后这里面来一个Dollar。然后每输出一个am,我是不是叫am进行改变的甲甲,那现在你看我是不是从一一轮能输出30多呀,对吧,因为什么,因为在这里边是靠里边的子层循环来输出的数,对不对,那好了,那接下来完事以后,我们开始做一个判断,也就在这里边,如果当我的刀了A大于我到了day的时候,那这个时候肯定是输出什么,输出空白的TD的。
10:07
空白的基地。否则。是不是才输出这段内容?对不对,哎,那现在再来看刷新。把有错,语法有错,在我的第37行啊,第37行这边多了一个什么书杠对吧?好了再来刷新,那你看这个后面是不是搞定了,那前面一样,您说了一号是星期二,是不是在这输出啊,所以在这里面我来做一个判断对吧?或者还有什么时候输出空空格呢?是不是当我的刀W大于我的Dollar I的时候,我也要输出空格对吧?那这个时候你看每两个都输出了对吧?我只需要在第一行,那所以这里边在并且什么样am等于等于一的时候,这肯定是在第一行吧,那这个时候再来刷新是不是就搞定了。哎,好了,搞定了以后,那我问大家这是哪年哪月的。我是不是得把年跟月也要写进来,也就是说在这里边,在表格的这里边啊,我是不是可以给他一个这一个表头啊,比如说艾一个CP结束的CPT对吧,里边呢,我们给他一个这个H2吧。
11:09
结束的HR咱是不是得写了,比如说写了2020年。年12月对吧,比如说写了这个,那咱来看是不是咱写了这个才行啊,哎,但是呢,现在我有这个年和这个月嘛,没有吧,哎,所以说对于这个统计时间,帮我们获取时间这个东西,你不应该光给我这个月份和日期,因为什么?因为我现在这里边对于数字表格这里边显示的时候,我是不是需要年和月,对吧,你光给我这个一个月分钟有多少天和月钟一号星期几,是不是远远不够啊。对不对,我还知道需要知道有年和月,而且在后期我们还需要去干嘛,是不是做上一年上一月,下一年下月的功能,那所以我点上一年我是不是像当前这个年减一,我点上一月是不是当前这个月份加一,是不是这个意思,所以年跟月这两个变量我是不是也要拿到,对吧?所以在这块看好了我来干嘛设定。
12:09
年和月变量啊,来到了YE等于什么呢?等于我来没你有没有设置get里面的这个YE对吧?如果你设置我要你你设置,如果没设置呢,没设置我干嘛呀,我就自己获取这获取谁呀,获取这个Y,这就是我的年对吧?那同样越野一样MNTH多下线。到了下线get里面的month,然后问号,如果你没有设置,我就date里面的。M是不是就拿月暂呢,对不对,哎,好了,那年跟月我是不是就有这个这两个变量了,那么有了这两个变量,那OK,接下来我来问啊,你看在这里边再去求年终月份有多少天的时候,月份中一二是星期几的时候,在后面make time的时候,我是不是就是有月份了,不再是12月了,对吧,而是我的mon PH区域,因为他说了,因为没有设置这个月份的时候,我默认就是获取系统当前月对不对?哎,那一样一天数一号,咱就不用变了,年是不是也有了,那是不是一样Dollar y1啊,也就是说你没有设置年的时候,我就默认获取系统的年份,对不对,哎,好了,那同样,那这个一号星期几,某年某月一号星期几,我们做到了,那某年某月这块不应该叫什么给定。
13:18
不是某本月了,应该是某年的某月了,对吧,某年某月,那这里面也一样,也不是本月,应该是某年某。月有多少天吧,那这块是不是不能获取当天时间出来,而是我需要指定make time00:00:00对吧,每个月呢,On he对吧?然后咱们这个只是获取月份钟有多少天,跟日期是不是没关系对吧?但是日期我肯定要给一个,我给个一单位就可以了啊,然后再来一个Y一个年好了,那最终我是不是就求出这个年中。点哪去了这呢啊,是不是求出这个年终这个。月。出来这个年终这个月一号是星期几对吧?然后这个T呢,是不是就求出这个年终这个月有多少天对吧?哎,那接下来要返回的时候,我不光返回他俩,我是不是还要再来拼接一个什么呀?拼接一个Y啊把年返回出去对吧?再来拼接一个谁拼接一个m month是把月也返回去,哎,那同样,那对应的再去分割的时候,对于这个数组是不是对于这个字符串是不是多了两个值,那多了两个值在后面,你看到了,我是不是也一样接收一下到了Y。
14:26
接收一个,然后还有谁到了MNTH也接收一个,是不是就有四个变量了,有四个变量呢,这会年的话,我是不是就可以分割连接到了Y月呢,也一样分割连接遭了。TH是不是就可以了,对吧,那现在你再来看我再来刷新,是不是还没有变化。哎,这是不是我当前的年跟月是不是就可以了,那比如说刚才我们通过钙的方式设置的是吧,那是不是就在这里问号,比如说这个叫做Ye。我要求什么呢?我要求2021年对吧,并且MNMNTH。
15:01
Month,我要求多少月呢?求五月走,你来,你看2021年5月是不是变过来了,五月的一号是星期六,五月有31天,看对不对,来这里面下一年。下一年啊,这是2021年的吉月,五月来走,你五月的一号是星期六,本月有31天,31号星期一对不对,那你看这里边是不是也一样。一号是星期六,31号星期一。是不是可以达到了,哎,那好了,那完事以后接下来干嘛,接下来我是不是要显示我的上一年下一年上月下月这个效果了,那所以在这里边来。显示上一年。上音乐。下一年下一月的效果对吧,那在这里边,比如说我来艾口一个什么一个TR结束的。PR,然后在这里边给他一个TD。结束的TD,这里边我给他一个AL杠,所有内容向右显示对吧,然后这块呢,我不直接写了,我调用一个一个方法啊,比如说来一个chat,称之date吧啊调用这个函数啊好了,然后这里边我再给他一个什么呢?再给他一个括号,合并cos PN块七个啊,也就是说一调用这个函数,它就会返回什么呢?返回上一页下一页,下一页的这个字串啊,那也就是在这里边来。
16:27
再定义干嘛呀,显示上一年。上一月下一年下一月的效果对吧,那来f UC function叫什么呢?叫做承接date,电梯接date。An,啊,好了。那在这里面咱们就要显示了,那比如这种定一个字符串糟了。
17:02
O。等于什么呢?比如等于个A标签,结束的A标签,这个叫什么,这个叫上一年对吧,我上一年我可以给他一个符号啊,比如给个这么符号,然后HR跳转到地址对吧,那么跳转到哪里。NB。我是不是还要轮到首页对吧,所以这里边我就不需要再去写了啊,那么一样,我要做上一年的时候上所谓要做上一年是不是就是我当前年减一啊,对不对,所以我也需要有一个什么帮我处理上一年的方法啊,那么一会儿再说,我们先把这个效果先写出来啊,然后再往后。糟了。点等于A。在结束的A。HRF。然后这个叫上一月,上月我就给他俩这个啊好上一年这个咱也给他一个。然后再来按NBSP。
18:05
然后再来O,再点等。A结束的A。HREF。然后这个叫做。下一月。好。然后按NBSP。CTRLCCTRLV,下一页完事以后还有我们的下一年对吧?O再继续点等于A结束的A。这个叫做下一年。然后h ref好了,这是不是有这么一个字符串,对吧,有了这个字符串,最后这个东西就干嘛呢?Re return return,这个帮我返回这个字符串,那返回它返回谁的返回函数被调用的地方还有点用,是不是在这里面去调用呢?对吧?所以我一输出这个内容,是不是就会给我输出这个效果,那咱们来看走你。
19:00
是不是就有这个效果了,你看上一年上一月下一月下一年对吧,是不是都是往本月传的,哎,那所谓的上一年是不是当前年检一对吧,那么这里边是不是就换,换句话来说就是这里边当我一点击上一年的时候,我是不是就问号传传什么,传一个K等于什么,等于一个,比如说减一对吧,然后还有不是配角是。等于一个减一,那年减一月份呢说并且month月份指标保持不变。是不是还要等于这个,比如说当年12月,是不是等于12月,对吧,因为我点上一年只是年检一变成2020年,比如当年是五月,那是不是202年5月。那是不就是现在有这样的效果啊,对吧,所以在这块看好了啊,这个东西是不是未来在这个地址中需要去写的这个内容啊,因为我要全参嘛,对不对,现在你来看啊,我来刷新,比如说在这里面点击放到上一年了,你看是不是就传了这么个参数。对不对,哎,所以在这里边干嘛呢?看好了,我给他一个函数来,我把这段内容,这段内容肯定是我函数之后要返回的,对吧,分割连接,然后写成我们函数,函数叫什么呢?叫做这个,比如说叫P好了,这里边在处理上一年的时候,你要给我年变量,还要给我月变量。
20:11
对吧,那有了这两个变量我才能帮你做,那你看好了,这里边叫处理。上一年对吧,那f func方程式叫做P,你要给我年份变量,要给我月份变量,那所谓的上一年我是不是要年份减减就可以了,对吧?哎,减减完以后月份保持不变,那最终我要水份返回一个参数返回是不是就这个参数,这个参数的这个值。年是不是就是外啊月呢?是不是到了NTH是不是就可以了,哎,返回给被调用的地方,谁被调用,是不是它被调用了对吧?是不返回到这里,返回到这里,你想解析成这样的,这不串是不是直接就当参数用了,哎,但是注意了,它在调用,在调用它的时候要传年跟月,那在这个函数中有年跟月的变量吗?没有吧,所以不管你谁调用我这个函数,你需要干嘛?给我这个年和月,因为我里边的子函数是不需要,对吧?那么有了这个年和月,那你看这个函数被谁调用了,这个函数是不是被table调用了,So table这里边。
21:10
把这些先缩小一下啊。完了,这些没有了,你看啊,在这个so table里边是不是有这个年跟月的变量,对吧?那我在它下边去调用的时候,在这调用的时候,我是不是就可以传到y Dollar mnth了,对不对?那现在咱们来看啊,我再来刷新,刷新完之后鼠标放上来,上一年的时候来,你看是不是2020年5月,因为当前我调的是2021年的五月,对不对?那好了,那点击上一年,你看2020年5月,那2020年5月是星期一。五月是星期五,本月31天,31号星期日,那看是不是啊,在这里边我们再去找找找2020年的五月。2020年5月对吧,五月的一号是星期五,本月有31天,31号是什么是星期日,那对不对,看看来一号星期五三十一天,30号星期日是不是就没问题了,我上一年的功能是不是就可以搞定了,对吧?19年18年17年是不是都可以了?哎,那好了,那上一年搞定了是不是就上一月了,那所谓的上一月是不是也依然如此,也需要干嘛呀,是不是传问号,比如说Y等于,比如年份咱们还保持2020对吧,然后并且月呢,MTH可能上个月是不是11月是不是传这么一个东西对吧,那这个东西也一样,我再来分割连接preth,你把这个年和这个暂的变量放到这里边,对吧,那在这里边我是不是要处理。
22:40
处理上一月对吧,那func function,比如说这个叫什么,这个上月我们定义的叫p month对吧,P month这里边一样,你要传给我这个年,传给我这个。MN月,对吧,别管我做了什么处理,最终我是不是还要把这个年个月润出去?
23:00
是不是要决定这么一句话对吧,那所谓的上月是不是当前月减一对不对,但是当前月减一,如果当前月,比如说如果当前月为第为一月的话啊,那一月再减上个月,那月份是不是变12年也能减减呢?对不对?所以在这里面我来做一个判断,如果,如果什么呢?如果到了MNTH,它要是等于等于一的时候,那好我让Y减减对吧,然后呢,MN应该等于多少变成12是吧?否则的情况下,到了Mo th才能减减,是不是这个意思?哎,那好了,那你要传完现在我们再来看啊,再来刷新,这个时候现在五月上个月是不是六月再上个七不对。上二一对吧,在上的时候是不是2015年12月看到吧,2015年的12月,你看一号是星期二,31天,32星期四,看对不对啊,2015年的。多少月,12月是吧。下一月12月来一号星期二。31号星期四对吧,那你看是不是这样的。
24:00
一号星期二,31号星期四,是不是2015年的12月对吧?哎,那好了,那暂完事的,接下来呢,接下来还有什么,是不是还有我们的下一年的。处理。下一。还有。处理。下一年是不是这样的?哎,我们先不管啊,这里边可能会有一些细小的bug,那么下面整体的写下来啊,来翻个下一个,那我就叫ast month,那同样下月是不是你也要传给我年和月这两个变量month对吧?给了这两个变量,那咱所谓的下一月我就是当前月加加对不对?将月暂加加,但是如果月暂是12的话,我再减定下个月了,那是不是就是要月暂变一年加加了,所以这里边到了MNTH要是等于等于12的时候,那怎么办?是不是我万一啊年加加月暂等于一对吧,否则的时候才是我的月暂加价。没错吧,那最后呢,我最后是不是还要什么,是不是还是这个字符串年月的这两个变量。
25:05
对不对,哎,Re,论完以后,那这个变量要放到哪里,是不是依然是放到问号分割这里边netth。对吧,同样到了YE传进来,到了TH传进来,对吧,那我的这个下一年是不是依然如此。NE。Yar把Dollar y ER和donth传进来,我的下一年功能是不是也可以了,但下一年我还没有做,对吧?我这里面处理下一年是吧,Fun nc。Fun function叫nest month,这里边我们再继续month,然后这里边所谓的下一年是不是月份保持不变,直接要年加加就行了,对吧,也就到了万一啊,进行加价对吧,加加完以后在这里面。再干嘛呀,把它返回去,CTRLCCTRLV是不再返回去,哎,好了,那这个时候我们再来看刷新啊,诶报错了,A stth在我的第89行数重复定义了。
26:04
啊,这块我应该叫什么叫做。PRY啊,一个是下一年,一个是下一月对吧,那好了,这个时候再来刷新,刷新完以后这块来看啊,2015年12月来,2016年1月。二月三月对不对,下一年17年再下一年18年19年20年对吧,下下下下。七八九十,十一十二是不是就可以了,对不对,哎,包括对于当前年当前这个数字,比如说当前啊多少天,比如说当前多少号,比如当前是这个色号啊,那我就可以干嘛呢?我可以让这个整个这个背景变什么变红对吧,那怎么样的变红呢?那在这里边在什么,在这里边我是不是可以做一些判断了,对不对,哎,那OK,我们现在基础版,我们先写这么一个版本,一会儿呢,我们再来给干嘛?封装跟优化,包括我们再把这里面的一些小bug再做来做一个细化啊好了,那这节课我们。
我来说两句