Scratch 之 “2000年至今的天数”积木 的用法

2000年至今的天数

2000年至今的天数

看起来,这块积木好像没有什么用,2000年还是固定的一个值,不能输入。点一下它,可以看到返回了一个小数位数特别多的数。

但实际上,这块积木有着非常多的作用。在很多自制积木包中都用到了这块积木。下面,我演示这块积木的作用。


1.计算精确的时间(时、分、秒、毫秒等)

公式如下:

        [2000年至今的天数×单位大一级与天的进率-向下取整 (2000年至今的天数×单位大一级与天的进率)]×单位与大一级的单位的进率

        是不是有一点难理解,没关系,让我们看一个示例。

        我们要求精确的秒,比秒大一级的单位是分,分与秒的进率是60,分与天的进率是1440(24×60),那么,代入公式,就变成了下面这样。

        和当前时间的秒做对比,可以看到确实更精确。原理就是先算出过的秒数,(向下取整得到小数部分)再乘60就得到精确的秒数。不过有一点要注意,精确的时间就已经包含了下一级的时间了,所以不能又精确分又精确秒,这样是不正确的,所以建议只精确在最后一位。


2.永不停止

        众所周知,Scratch3中的计时器每次点绿旗时都会归零,不管有没有运行计时器归零这块积木。但是2000年至今的天数不会,它永远不会停止,关闭作品再打开也没有影响,还可以跨作品连接。并且精度超级高。经本人测试,它可以精确到微秒,但没有到纳秒。公式如下:

        2000年至今的天数×天与你想求的单位的进率

        如果我们要求2000年至今的微秒数,就可以这样求:

2000年至今的微秒的计算公式(1000000是微秒与秒的进率)

        2000年至今的微秒的计算公式(1000000是微秒与秒的进率)

        另外,这块积木返回的是UTC标准时间,和北京时间有8小时时差(UTC+8),所以如果用它来计算时间,要加上8小时才能得出北京时间。


3.本人的设想

        由于可以跨作品,所以可以做出这样一种程序:2000年至今的天数大于一个数字时,很多作品同时触发特定程序(比如跨年倒计时)

        另外,我很好奇,如果把电脑的时间修改成小于2000年,这块积木会返回正数还是负数呢?

猜你喜欢

转载自blog.csdn.net/leyang0910/article/details/131999440