今天我们来聊一下这个电脑和 new day 的 get time 或者这个加 new day 这三个函数的区别。 呃,事情是这样的,我最近在开发集成这个微信支付,然后我看到他的代码中有这个 new data get time 这个函数。啊, 啊,那这个函数它的作用是就是计算从一九七零年一月一号到 就是到现在啊,经过个好秒数啊,我开发 家中是用这个电脑会多一点的。呃,我们先看一下这三个函数他们的计算结果是不是一样的,我们把这三个字打印出来啊,我们执行一下, 我们可以看到这三个字是一样的,那一样的就是说你三个都可以用, 但是呢,哪个性能好呢?当然是哪个性能好用哪个,我们来说一下哪个性能会好一点呢?怎么说呢, 首先我们让他这个函数运行一百万次啊,我们第一个就是控 follow time, 第一个计算是电脑 俯卧循环一个 late, i really i shall you five i 加加, 呃,这个里面我什么都不用做啊,我们只用执行这个函数就行了,然后我们这里是 console time end 的一个啊, ok, 我们先把这个算一下啊, ok, 呃,七十五毫秒啊,已经出来了,我们把另外两个也写写出来啊, ok, 我们执行一下, ok, 结果已经出来了,我这个电脑执行这个电脑和这个 new day 这三个函数一百万是,呃,购置需要时间就是可以看的,很明显的, 这个电脑大概他只需要这个 new day, get time 只需要他时间的一半,然后呢,这个加这个 new day 的呢?他又比这个 get time 需要的时间稍微长一点点, 你就算执行多次也是,虽然虽然每次结果会不一样啊,但是大致的时间都都是一样的,所以呢, 我们开发中尽量使用这个电脑啊,为什么呢?因为它性能最好啊。 嗯,最后一个呢,他这个的话时间比比第二个稍微长一点,因为他这个一个格式转换呢,他中间这个过程中有有格式转换的,所以他耗时比这个要稍微长一点。 呃,然后我去看了一下,搜了一下这个代码呀,就是 这三个函数,比如说我们搜一个电脑,我们先搜电脑啊, 呃,给 top 上它使用的这个,我们可以看到这左边这扣的,呃,一点五 m 呐, 一点五 m, 你先接下来啊,一点五, 然后 new day 三点三 m 呢?三点三 m, 然后最后一个加这个 music, 呃,一点七 m 啊,最后一点七 m。 这个是百万的意思啊,就是这个大概一百五十万,一百五十 代码用的这个是三百多万代码,这个是一点七啊,这就很搞笑啊,就是新人,好的呢,就是写的人反而少, 对吧?然后我们可以看到啊,就是就即使是这个开源,像这个 electro 啊,他们这里都用了这个 new day, 前面加一个加号,就是转换一下, 就是看起来很简洁,但是他的性能呢?时尚是最糟糕的。 然后我后面去查了一下这个电脑,我就我在思考这个电脑的函数是不是就是说他出来的比较迟了,后面我去查了一下, 就是得到一个结果是这个函数在,就是在我们知道 g s 它是属于那个 x q 嘛,它在就 e s。 五五点一的时候呢,就已经出现了,就是最早就是二零一一年的时候呢,就已经有了, 就是十二年前这个函数就已经加进来,然后现在的开发中 使用的居然还有大部分还在用另外两个,这个性能不是很好的一个计算这个日期的一个 这个方法呀,所以呢,嗯,大家开发中呢尽量就是要使用的话,尽量要用 这个电脑啊,如果是计算这个好秒数的话。好的,今天分享就到这里,谢谢大家。
粉丝5739获赞1.5万

大家好,我是李子,这一节我们讲一下如何用 zs 动态的获取当前时间。话不多说,我们开始写代码,先打开编辑器,新念一个文件,对他 先写一个 diy, 用来显示当前时间。 接下来我们开始写 zs, 因为我们用到的是时间,所以说我们需要实力化一个时间对象。 第一个获取时间对象里边的黏 接下来获取月,这个地方需要注意一下,这里获取到的月份比实际的月份少一个月,这里需要加一,但是我忘记了,大家这里需要注意一下, 然后再获取当前十七号, 获取小丝, 获取分钟, 获取当前的秒数。 最后我们拼接起来,把它放到下面的地下位里去, 先获取下面的 drv 元素, 给他复制内容。 年月日,中间用横杠隔开, 中间加一个空格,后面是十分秒,我们用冒号割开。 写到这一步还需要一个定时器,每一秒执行一次, 这个方法里面是需要执行的内容,后面这个参数是时间,也就是一秒。我们把这部分代码放到这个方法里, 到浏览器中运行一下, 大家可以看到当前的时间就已经获取到了,其实应该是五月六号,这里显示的是四月六号, 就是我刚才说的月份,应该加一本节视频就到这里,下节我们继续学习。

哈喽,各位观众朋友大家好,今天我们来学习 typescript 的第十八张声明文件,也就是这个地点 ts。 那今天的话我们会学到一个新的单词叫 declare, declare 的话也就是声明的意思,它呢其实就是这个 d 点 tsd 的简写啊。对,这个 d 的全称就是这个迪克丽尔,那简写呢?就是这个 d 啊,对,他俩其实是一个意思。呃,在我们使用这个第三方库的时候呢,我们必须要使用他的生命文件才可以获得这个代码的补全,不然呢是有这个报错的。好的,我们来给大家演示一下啊。 呃,我们需要先生成一个这个 t s 抗风扇结塞啊,我们可以使用这个 t s c 杠杠 in it。 对,使用这个命令来生成。哎,这样的话我已经生成好了。对,直接生成就可以了,里面什么东西我都没有改啊。对,大家记得生成下就好了。生成完之后呢,在这新建一个 index t s, 然后呢再 通过 n p, m innit 对杠 y 去生成一个这个 pigger jason, 然后呢这个文件夹的话我就随便建了,这个叫什么都行啊。对,你们可以随便起,这的话,我是为了规范叫这这个名。 ok。 然后建完之后呢,我们需要安装两个库啊,来给大家进行一个对比啊, 我们可以先安装一个这个比较老的一个库啊,比如说这个 express, 那这个库呢,可以写这个后台的接口啊,相信大家应该都用过。对,呃,因为这个东西呢,它是由 g s 写的,并没有写这个生命文件啊。然后我们再安装一个右边写生命文件的一个库,就是这个 x, 那 axle 的话大家应该也用过啊,我们前端调接口都喜欢用这个,呃, axle ok, 然后我们来给大家演示一下,比如说我们可以 input 一个这个 axle for all 这个 axle ok, 然后呢,我们再引一下这个 express, 啊,对,给大家对比一下啊, 哎,你会发现 axle 没有报错,这个 e price 它是报错,哎,这是为什么呢?那我们先看这个 axle, 你可以使用 control, 然后鼠标去点一下这个 x, 哎,你会发现这时候进入呢,注意啊,这时候进入的并不是它的源码,是它的生命文件,注意看啊, 是 x 下面的 index 点 d 点 ts, 这个的话就是它的生命文件,因为这个库呢,人家已经自带的生命文件已经编写过了,所以说是没有任何报错的,并且呢,写起代码来还是有这个提示的,比如说 x 点 get, 对,发送一个 get 请求,对吧?还有这个 post, 哎,都帮我们在这个生命文件里面呢,提前已经写好了,比如说 post, 我往下找一找啊,哎,就在这你可以看到,这就是我们刚才所调的那个方法,他已经都帮我们去做这个声明,都已经写好了,所以说他是没有报错,并且呢是有任何提示的。而我们来看这个 express 那一个 price 的,我们点进去发现呢,进入的是它的原码,并不是生命文件啊,对,这是它的原码,并不是生命文件,所以说找不到它生命文件,它就进行一个报错啊,这也是为什么 t s 没有流行起来的一个原因啊,就是因为有很多这样的问题,就是 你想用一些第三方库啊,呃,在 ts 工程中想用一些第三方库,哎,他就会有这种问题,必须要有这个生命文件,哎,当然有两个解决方案。第一个就是,呃,这个他的社区呢,会为这些这个活跃的一些库去编写这个生命 文件,所以说你可以尝试使用 n p m i, 也就是 n p m install 杠杠 save 杠低位,也就是杠 d 啊。然后通过 it types, 注意,这是一个规范,就是安装所有酷的生命文件, 必须要使用 it types 开头,然后后面跟上你酷的一个名字去为他安装生命文件,你就可以使用这个酷了啊。这个方法我亲测过,是可以的,完全是可以的。当然一些冷门的酷是不会为你去编写的, 那不会为你去编写怎么办呢?那你就只能去手写这个库的生命文件了。那我们先演示一下如何去手写一个这个库的生命文件,我们就使用这个 express 为例啊。 呃,这是他提供的第二种方法,也就是去手写,我们直接把这个给他粘过来啊,给大家手写一次。这的话我们新建 一个,注意这个名字也是有规范的,要为谁去编写这个生命文件,哎,要为一颗 pros 去编写,它的规范是什么?点?地点 ts, 也就是 declar 去做生命扩充,哎,通过这个规则去建这个 ts 文件就可以了。 ok, 电商之后呢,我们先写一下这个 express 的一个模板啊,我们先把这个先给他粘过去, ok, 哎,你会发现其实他现在立马就不报错了,因为他现在可以找到我们自己所编写的生命文件,你可以再使用 ctrl 点进去,哎,就找到这个了,我们先写一下模板啊,等会我们再给他补全。 这个 express 的,它是一个函数,对,是通过,对,是通过这么去调用的,然后呢,它上面有很多方法,比如说点这个什么 you, 对吧?然后呢,我们还可以建一个抗 它一个,呃,这个 rooter, 对吧?一个 price 上面,它还有一个 rooter 的一个函数啊, ok, 然后 u 的的话可以给这个 router 添加一个前缀,也比如说杠 a p a 吧,然后把这个 router 给它塞进去,哎,这样子。然后呢,它还有很多方法, 比如这个如特点什么 get, 对吧?那就是杠 a p i, 然后有一个回调函数, r e q r e s 哎,这样子。 呃,阿里 q 的话就是读起前端传过来东西, rs 就是给给前端返回的什么东西,这的话不就简单写个模板,写的简单一点,返一个两百。然后呢再监听一下这个端口啊,通过 lisa 端口的话,我们就随便写一个九零零幺吧,然后还有一个回调函数, 对,这样子,然后 ctrl 点 log, 然后比如说随便写一个九零零幺吧。 ok, 然后这个 r e q 跟 r e s 这里边类型太多了,我们先暂定成安妮吧,对,它里面东西太多了,我们只是写个例子啊, ok, 好的,然后我们去为他去编写这个生命文件啊,现在肯定是不对的啊,然后他是一个这个对象啊, ok, 现在呢就已经是报错了。 呃,然后这个 express 呢?它是一个函数,所以说我们需要写个 interface, 呃, interface 都是大写开头的,就是 e x p r e s s 这样子,然后呢,它是一个函数, ok, 它是一个函数,它里面有些什么东西呢? 这函数里面还有个属性,还有个这个 rooter, 然后我们再写一个 rooter 啊,呃, interface, 呃, rooter, ok, 然后这这个函数里边呢,还有很多方法,比如说这个,你看有这个 listen, 还有这个 you, 所以说我们还需要再写一个 interface 啊,嗯, interface 叫什么?叫 a p p 吧, ok, 然后有哪两个方法呢?有这个 use, 还有这个 listen, 呃,我们先让这个一个 price 先,别让它报错了,因为我们没有返回啊,先把这个 a p p 先付给它。 呃,返回的话需要起一个变量,这个名字随便起。呃,我就叫一个 price 吧,然后把这个类型去付给他,然后呢?再通过 export default 啊,去给它导出就可以了,你会发现它就变成一个函数了,哎,就已经正确了啊。然后我们先把这两个方法先给它实现了啊,一个 use 和一个 listen。 呃,通过 a p p 里边儿,呃, use 是个方法, 然后返回值的话,来一个 word 吧。 ok, 然后它里面有两个参数,一个是这个 a p i, 还有一个是 rooter。 a p i 的话,我们叫什么? pass 吧,随便起一个,它是一个 string, 还有一个 rotor, 因为 rotor 里面东西也太多了,我们先定义成 angel, ok, 我们会发现这个 use 呢,它也就已经变好了,还有这个 listen 呢? 那再来个 lisa, lisa 的,它也是一个函数啊,然后它第一个参数是这个端口号儿,嗯,叫 port, 是个 number, 对吧?然后它第二个参数呢?是一个拷 back, 是一个回调函数,呃,就叫 c b 吧, 对,是一个回调函数啊,没有返回值,就是 word, ok, 当然这个回调函数可以有,可以没有啊,所以说可以加个问号,把它变成可选的。 ok, 那这两个都已经变好, 呃,还差这个 router, 呃, router 的话,我们给它填到这啊, router 它是一个方法,它的类型呢?就是这个 router, ok, 你会发现 router 就已经不报错了,但是它里边 router 里边还有方法, router 里边有个这个 get pose 的这些方法。然后我们这儿只是一个例子,我们就先定一个吧,定一个 get, 返回值是一个 word, 呃,然后第一个参数也是一个 pass 啊, 是一个 string, 第二个参数呢?是这个,呃,回调函数啊,也是一个拷 back。 所以说这儿的话,我们来一个 c b 啊。 返回值的话,同样还是给一个 word, 但是它有两个参数,有个 r e q 跟 r e s。 呃,这里边属性太多了, 这我们先给他定成安妮了,我们只是演示一下啊,这我们就不写那么多了。 ok, 写完之后你会发现,哎,他神奇的就已经变成这个正常的了。哎。这个的话就是我们去手写这个, 呃,生命文件啊,哎,这种方式也是可以的,带大家去写了一下这个 express 的一个生命文件,当然它除了这个扩充模块儿,还可以扩充些别的。我们来演示一下,比如说通过 迪克利尔扩充个全局变量,哎,也是可以的,比如说 a, 然后它的类型是个 number, 我们需要加一个声明啊,比如说 word, 这个都可以啊, like 也行啊。然后你会发现他就有了提示了啊, 哎,在这,比如说我们随便写一下,哎,哎,发现看到没有就已经是有这个提示了,比如说我把它复制成一个 force 肯定是不可以的,因为。因为什么?因为我们把它定义成一个 number, 对,我在我们这个生命文件里面已经把它定义过了,那这个的话就是一个扩充全局变量,当然他还可以扩充一些别的啊, 呃,扩充这个,呃,函数,对函数也是可以的,呃,就叫这个板栗,然后你们会发现这里,哎,也是有这个提示的啊,我们叫别的名吧,比如说叉叉叉吧, 对,叉叉叉, ok, 可以看到它是一个函数,也是有这个提示的啊,然后里边还有个参数,这儿 palmer 那也是没有问题啊。然后还可以扩充这个类也是可以的, 通过 declare, 嗯, class, 比如说什么 v u e 啊,这样子扩充类也是可以的。在这你看啊,比如说我们写这个 v u e, 哎,他就已经有这个提示了啊,啊,还可以扩充一些别的,比如说这个媒体也是 是可以的,比如说叫一个什么叫个 c 吧,然后里边有个 a 等于一个 e, 哎,这样子也是可以的,然后你就可以通过 c 点 a, 哎,就可以去调到这个属性了啊。扩充媒局也是可以的,还可以扩充全局的,就是 global, 然后还可以扩充这个, 呃, nim, space, 命名空间等等都是可以的。哎,我就不演示了,反正,呃,大部分的都是可以去进行这个声明扩充的, ok, 那这个的话就是一个 decal 的一个用法啊,这是我们演示的第二种方式,如果你不会去写这个生命文件,你也可以去尝试着去装一下我们刚才说的 他这个社区给写好的,所以说我们就先把我们自己写的生命文件给他删掉了,而他呢,现在应该又要进行这个报错了,然后我们去尝试去给他装一下这种,哎,你会发现其实这种也是可以的啊,如果你这种装不上,就是比如说 报一个四零四,那说明这个社区没有给他写这个生命文件,那你就必须要自己去写了。对,所以说你可以先使用第一种方法先装一下,如果装不上你再去写, 这一定是可以的,我们把它擦掉重新点进去,哎,发现,你看是不是一点报错都没有,就我们刚才写的是完全没有问题的,我们 ctrl 点进去,发现呢,就已经找到了它的这个 in index 点,地点 ts, 这个的话就是一个生命文件,而不是找它的源码了。 然后我们可以翻开这个 note modules and it types, 哎,它的生命文件呢,就是我们装的都是在这个包里边放着呢, 比这个 express, 哎。 index 定下 t s, 哎,就是这个目录啊,你会发现,呃,然后我们刚才装的这个 x 呢? x, 我们没有装这个生命危险。因为什么?因为人家自带的,你会发现人家在这个工程里面自带 了 index 的地点 t s, 并且人家在这个 pygastase 里边通过这个 types 还指定了一下,我们可以往下翻一下。 呃,给大家搜一下吧。啊对,你可以看到他在这呢,其实就已经指定了这些,呃, index 地点 t s 人家都已经都写好了,所以说是可以直接去使用的。 ok, 以上的话就是一个声明文件的一个讲解啊。

参数归一化是我们软件开发里的一个非常重要且实用的技巧,你用的好,会极大地简化你的代码,同时提升你代码的可阅读性和可维护性。我们用一个例子啊,来举例说明他到底该怎么用。比方说我们有这么一个函数,他要实现的功能呢,非常简单, 他可以把传入的日期进行格式化,返回一个字符串,你可以告诉他如何来格式化,也可以告诉他在格式化里边的一些细节。我们希望呢,这个函数用起来非常方便,所以呢,我们会给他增加非常多的调用方式。比方说第一种,传入一个日期,告诉他我只需要日期,他会得到这么一个东西。 传入一个日期,我告诉他我需要得到日期和时间,他会给我这么一个东西传入一个日期,我告诉他需要得到日期,并且呢,在那些单位数的日期前边加一个零,他会得到这么一个东西,传出一个日期,我告诉他需要得到日期和时间。前面补零,那么会得到这么一个格, 传入一个日期,我告诉他应该用这种格式来格式化这个日期,他就会按照我们的格式把相应位置呢进行替换。比方说这个 yyyy 就替换成年,对吧? mm 呢,就替换成月。呃,如果说你再加第三个参数的话,那么他会在前面呢,补充一个零啊,就这些位置,懂了意思吧? 好,最后一种,你还可以传递一个函数,对吧?有的时候呢,有些定制化的需求,我希望呢自己定义一个函数来进行格式化,传入一个日期,然后呢, 我这个函数会把这个日期进行分析,把这个日期里边的所有信息啊,给你封装好一个对象给你传过来,从这个对象里边你可以拿到所有你需要的信息,比方说我们这里呢,拿到了年,然后呢跟今年进行对比,输出多少年前,或者是多少年后,或者是今年。 那么你这里返回的支付串呢?就是我这个函数返回的支付串,你看哈,我给你们举了这么多例子,同学们应该可以感受的到,这个 formax 函数呢,由于 他参数的情况太多了,你想一想,如果说你不加处理的话,你看这个问题你去判断吧,那得多少种情况啊?一个代码就很不好写,那么我们思考一下啊,有这么多的不同的参数的场景, 哪一种场景是最灵活的?这功能最强大,最灵活,是不是一定是传入函数的场景啊?那么是不是就意味着其他的情况, 我们都可以想一种办法把它转换成函数吧,对吧?比方说你传入这个参数的时候,那么是不是就相当于是你传了一个函数, 我从这个函数里边得到一些相关的信息,然后给你返回,拼接好这么一个支付串,对吧?年月日数据类似于这种情况,你仔细观察的话,会发现这个玩意确实是如此,不光是这个参数的情况,其他的参数都可以把它转换成函数。所以呢,我们可以在这个函数内部先搞定一件事, 就是无论你是什么样的情况,我都把你转换成函数,这就叫做参数归一化,把不同的情况转换成最终的一种情况。那么后续呢,就可以按照这一种情况进行处理,从而让整件事呢变得非常有条理, 无论情况再多,我都不止于混乱。那么我们可以写这么一个辅助函数,叫做 format normalize, 把这个 format 函数的参数进行规矩化,你给我传递一个 formator, 你给我传递个 inspect, 把这些信息都告诉我,我要做的事情就是给你返回一个函数,对吧?无论你是啥情况,我都给你转换成函数, 那么有了函数之后,你就可以做后续的处理了。因此呢,我们就把这个复杂的多场景的问题转换成了一个小问题,就是如何把所有的情况汇总成一个情况,那么这个函数代码就非常好写了。如果说你给我传递的这个 formatter 本身就是函数的话,那我还转换啥呀?直接给你返回得了。如果说你给我传递的不是函数的话,那我看一下 你给我传递的是不是制服串,如果说你不是制服串的话,那这个参数已无误,是吧?我给你抛出一个错误,必须是制服串好,剩下的情况就是他是制服串的情况,那么制服串的情况我们要把它转换成函数。这里呢,我们观察一下啊,制服串的情况也有非常多, 我们会发现有两种固定的支付串, dead 和 destin。 还有一种呢,就是用户填写的格式,他这是这个玩意是不固定的,你鬼知道他会给你填啥, 对吧?他可以这样填,这样填或者没有前面的粘都是可以的。所以呢,我们在规划的时候呢,还会做一些细节处理,我先想办法把这两种情况转换成这种情况,对吧?因为这种情况其实就涵盖了前面两种情况了,对不对?所以呢,我们判断一下, 如果说 formatter 是一个 debt, 那么就相当于是他填了这么一个东西, yyyy m m d d 是这意思吧? l c if format 是一个 this time, 那么就相当于是这个东西,对不对?好,我们先把字符串先统一了好,统一了字符串之后啊,那么代码到了第十四行否埋他的格式,他一定是类似于这种格式,那么我们再想办法把这种格式呢转换成函数, 好,写个函数,这个函数的格式呢,跟最终我们要传入的函数格式是一样的,对吧?接受一个参数,就是所有的日期信息全在里边。好,给我一个日期信息, 我给你返回一个支付券,我的目前的模板呢是这种格式,其实我要做的事情就是在模板里边替换掉这个位置,替换掉这个位置,替换掉这个位置,是吧?那么我们从这个日期信息里边去结构 拿到所有的数据啊,当然呢,一会我这边在调用这个函数的时候呢,需要把相应的信息全部传入,好,我这里就解漏吧,拿到这一系列的值啊,年月日十分秒毫秒 啊,都是支付券得式。那么剩下要做的事情呢,就是把这个模板里面的相应位置给他替换掉,把 yyyy 啊替换成这个值,对吧?一次把它替换完就完事了。 好,最终呢,我们把这个函数返回,你看一个归一化的函数就写完了,你别看这个函数好像代码挺多的,但是如果说你不加处理的话,你会发现这个封麦式函数更加恐怖, 这个参数是不需要的啊,那么有了这个归一化的函数之后啊,那么这边就方便了,我管他那么多,先把参数进行归一化, format 传进去,得到一个函数,还是保存到 format 里边吧,那么这样一来,这个 format 打印看一下是不是全部变成函数了,哎,那么剩下的事情就可以统一处理了,对吧?那后面这一把还用说吗?你无非就是建立一个 ds info, 把里面的数据呢全部拿到,然后再给他加上一些字不串的格式啊,把这些玩意全部转换成字不串,保存在另一些边角里边, 然后再判断一下 is pad 啊,不足的位数是不是要填零啊?那这个玩意儿简单啊,你写个辅助函数吧,把这个 dex info 里边的某一个属性填充到指定长度,对吧?不足位数呢,就填零,利用这个 pad start 就可以解决了啊,这个非常简单。好,那么剩下的事情就简单了,无非就是调用 pad, 先把年给我填充到四位,然后呢?把月给我填充到两位啊,然后剩下的依次填完就完事了。好,我们把这个 disinfo 准备好之后啊,我们就可以调用归一化的这个函数,把这个 disinfo 给他传进去, 他就会得到一个结果,而这个结果呢,就是我们要返回的结果,我们为了测试去打印一下这个结果啊,运行,你看是不是就全都正确了。其实我们可以画一张图,可以非常直观的来解释规划的好处就是我们的参数有非常多的情况,不同的情况呢,会进入不同的逻辑处理,就会导致我们这个函数 变得非常的复杂,那么规划的好处就是我们先把这些不同的情况汇总成一种情况,那么后续呢,都按照统一的情况进行处理,那么整个代码的逻辑呢,就会变得非常的简单,这种开发技巧啊,在很多的第三方库或者是框架原码里边都会得到大量的体现。 而且呢在我们归一化的过程中啊,我们通常是找那些能够代表所有情况的场景,比方说函数,在归一化的过程中,函数经常作为我们最终的转换结果啊,希望这个技巧呢同学们能够学会啊。

show us this um in most countries around the world well, you meet a woman you like you say hi yeah then you invite her for a date yeah and if that works well, then you invite her for a second date and if that works well, then you invite for dinner and if that works well, then maybe something else happens horizontally, horizontally yeah, okay and this is a normal timeline in most countries around the world so in normal the timeline is vertical, vertical, vertical, vertical, horizontal okay and now we have the norwegian one now, we have the norwegian one which is a little bit different yeah let me take that so in norway it works differently it starts here in above usually and then there is a fast forward process to point e now if you wake up the next morning and the person is still next to you you say huh maybe we can go for a date and now if that works well, then then you go you don't go back here and if that works well and then only then can you say hi if you meet in the hallway and then you go for a second date and then you go for dinner because dinners in norway is not a mean of getting to know people it's a result of an established relationship i'm thinking yeah, thank you really hard, i think you're right。

耍流氓大家都见过,有见过男人耍流氓的,再或者有女人耍流氓,但你见过银行耍流氓?我这里说的不是银行柜台上面的那句什么离柜概不负责。 我们买房人都知道,每年的一月一号的是陈亮房的重定价日,银行根据国家政策、市场经济综合考虑啊,重新定价当年的房贷利率。 商业住房贷款的利率是由贷款准基准利率和 lpr 基础上增或者说 下减积点来确定最终的商业贷款利率。但是今年的一月一号,从定价日,银行只下调了新办住房的利率的 lpr 基点,并未下调房贷基准利率。所以新办的住房贷款才是三点七的利率。而之前我们的纯量房贷款利率还是老四点二,并未下调贷款利率。说到这里啊, 你们说银行是不是在耍流氓?好的,嘉善买房卖房记得找磊哥说房!

国外老哥成功减肥一百二十七斤之后回了趟家,亲人和朋友们的反应 like 帅哥,你谁? yep, that's me at the end of last year, i decided i needed to change my life so i packed my bags to date with new york and wilderness i caught off all communication with my family and friends and got to work i'm back halfway for fifteen years i tried every diet all the exercise pads i even had an inflatable balloon in searching to my stomach and every time i failed just got flatter this time i decided to do something different instead of focusing on the scales i focused up being mentally resented building discipline over seven months i trained for five hours a day and last ten stone death it was time to go。 哈哈哈哈。
