如果你使用iPhone的闹钟功能,可能无意间发现了一个“bug”——当你快速滑动设置时间时,小时滚轮总是停在16,分钟滚轮总是停在39。有人以为是手机中了病毒,有人以为是闹钟坏了,甚至有人开玩笑说这是库克留给东方的神秘代码。其实,16:39不是玄学,是一段写在代码里的“物理定律”。

闹钟滚轮为什么滑不到头?
要解开16:39之谜,我们需要先理解苹果闹钟的一个底层设计逻辑:工程师没有为时间滚轮创建“循环”逻辑,而是创建了一个固定长度的列表。
什么意思?正常思考,一天24小时,分钟60分钟,滚轮应该是循环的——滑到23之后应该是0,滑到59之后应该是0。但苹果的实现方式更像一个“行李箱密码锁”:小时滚轮是一个包含1000个“格子”的列表,每个格子里装着一个数字小时;分钟滚轮也是1000个格子,每个格子里装着一个数字分钟。
当你快速滑动时,系统并不是在“调时间”,而是在这1000个格子里飞速移动。
1000 ÷ 24 的余数,锁定了16
小时滚轮有1000个格子,要展示的是0-23这24个数字。那么每个数字出现的次数是多少?1000 ÷ 24 = 41.666,取整是41次完整循环,余数是16。
这意味着:列表的最后16个格子,恰好对应的是第0到第15个小时,而滚轮物理停止时,往往会落在列表末端附近。由于大多数用户快速滑动后松手的位置趋近于“末端”,那个位置的数字就是第16个小时——也就是数字16 。
1000 ÷ 60 的余数,锁定了39
同样的逻辑应用到分钟滚轮:1000个格子 ÷ 60分钟 = 16次完整循环,余数是40。
这里有一个编程细节:在计算机世界里,计数通常是从0开始的。余数40意味着列表的最后40个格子,对应的是第0到第39分钟。如果滚轮停在末端附近,分钟数落在第40个格子上——但因为是从0开始数,第40个格子对应的数字其实是39。
16 : 39,就此锁定。
为什么苹果不修复这个“问题”?
你可能想问:既然知道这个“bug”,苹果为什么不修复?
答案是:这不算bug,而是取舍。
对于99%的用户来说,设置闹钟都是点按或缓慢滑动,很少有人会一口气把滚轮从顶部滑到底部。苹果为了简化代码逻辑,选择用固定列表而非循环算法,避免了复杂的边界判断和循环逻辑,提升了滚轮的流畅度。
而那个“16:39”,就像一个隐藏的彩蛋,记录着程序员在写代码时的那个瞬间——用最简洁的逻辑,完成最基础的功能,剩下的交给物理惯性。
下次不妨试试

知道这个原理后,下次设置闹钟时,你可以留意一下:当你快速滑动滚轮,尽管是最新发布的ios26.3版本,它依然会倔强地停在16:39。