show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 上次了解了日期和时间
- 有基本的module
- time
- datetime
- 有基本的module
- 还了解了古代计时的方法
- 时间差在航海时非常有用
- 应该如何记录是时间差呢?🤔
- Astrolabe
- 最早含义是 星盘
- 测量星星和水平面夹角的
- 后来也被翻译为 等高仪
- 水手用等高仪来测量太阳高度
- 但由于船的甲板是上下起伏的
- 这种仪器极难操作
- 而且不容易测算准确
- 后来人们用直角仪取代了星盘
- 而且大海起幅导致时钟根本不准确
- 所以对于定位都是大概齐的事情
- 但是随着大海航时代的开启
- 这种风险实在太大
- 2000人 五艘木质大帆船
- 沉了四艘
- 船长跑到当地土著那里
- 因为戴着戒指被谋杀了
- 船长跑到当地土著那里
- 这个岛其实就在英国边上
- 这就是英国在日不落之前的开局
- 有了问题
- 开始想办法解决
- 安妮以女王的名义
- 发布了经度法案(Longitude Act)
- 谁能解决
- 航行中的经纬度测量问题
- 就给20000万
- 六分仪用来测量
- 远方两个目标之间夹角 的 光学仪器
- 通常用它 测量某一时刻天体与海平线或地平线的夹角
- 比如北极星
- 更常见的是太阳
- 只要把左边的太阳放到海平面上就可以了
- 用这东西可以测量太阳角度
- 可是,太阳角度是随着时间变化的
- 纬度就像腰带
- 中午十二点的太阳倾角
- 肯定是可以知道纬度的
- 正午是明确的上下午的分割线
- 最初 只能区分上下午
- 不能区分时辰
import datetime
# 获取当前时间
current_time = datetime.datetime.now().time()
# 判断当前时间属于早上、中午还是晚上
if current_time < datetime.time(12):
print("早上好!")
elif current_time < datetime.time(18):
print("中午好!")
else:
print("晚上好!")
- 后来能够区分时辰
- 甚至具体的时间差
- 在根据时间差和航速
- 就可以知道大致位置
- 但是如何确保时间差呢?
- 早年间用的是沙漏
- 一沙漏的时间
- 有点像一炷香的时间
- 一沙漏的时间
- 以前的钟表都是机械的
- 一到大海上就不准了
- 因为波浪起起伏伏
- 船随沉浮浪
- 因为波浪起起伏伏
- 一到大海上就不准了
- 想要明确时间差
- 应该怎么办呢?
- John Harrison
- 出生于 Foulby
- 是五个孩子中的老大
- 他的继父是一个木匠
- 比较有名
- 获得了蓝色勋章
- 他学的也是木匠
- 这门手艺
- 做钟表对于当时的木工来说
- 比较非主流
- 家具比较多
- 但是他接了一个活
- 给马厩装钟表
- 300年过去了
- 这马厩还是马厩
- 这木头钟还能跑
- 这可算是改变人类历史的家具了
-
这种木材是来自于非洲的乌木
- 叫做lignum vitae
- 意思是生命树
- 自身有油
- 三百年不用告油
-
他想用木头
- 来解决时间差 这个问题
-
先看看python
- 是如何解决时间差这个问题的
import datetime
import time
now = datetime.datetime.now()
ini_time = datetime.datetime(2014, 2, 3)
print((now - ini_time).days)
- 运行结果
- 可以用这个做一个
- 纪念日提醒器吗?
- 比如纪念日是2014/2/3
import datetime
ini_time = datetime.datetime(2014, 2, 3)
print(ini_time + datetime.timedelta(days=1))
print(ini_time + datetime.timedelta(days=7))
print(ini_time + datetime.timedelta(days=14))
print(ini_time + datetime.timedelta(days=21))
print(ini_time + datetime.timedelta(days=28))
- 21天可以养成一个习惯
- 超过一个月怎么办呢?
from dateutil.relativedelta import relativedelta
import datetime
ini_time = datetime.datetime(2014, 2, 3)
print(ini_time + datetime.timedelta(days=1))
print(ini_time + datetime.timedelta(days=7))
print(ini_time + datetime.timedelta(days=14))
print(ini_time + datetime.timedelta(days=21))
print(ini_time + datetime.timedelta(days=28))
print(ini_time + relativedelta(months=1,days=1))
print(ini_time + relativedelta(months=2,days=1))
print(ini_time + relativedelta(months=3,days=1))
print(ini_time + relativedelta(months=4,days=1))
print(ini_time + relativedelta(months=5,days=1))
print(ini_time + relativedelta(months=6,days=1))
print(ini_time + relativedelta(years=1,days=1))
- 完整版
- 我们再回来
- 看看大航海时代
- 是如何精准计时的
- 看看大航海时代
- 这个小装置叫做
- grasshopper
- 蚂蚱装置
- grasshopper
- 可以有效避免
- 波浪对于钟表的影响
- 为了检验温度对于装置的影响
- 他有两个屋子
- 一个热
- 一个冷
- 他有两个屋子
- 经度竖着的
- 一天转360度
- 平均每小时15度
- Harrison的产品经过了4版迭代
- 70+岁开始研究怀表
- 终于得到了最新款h4
- 议会想赖账
- 后来国王King George III说必须给
- 80岁得到奖金
- 3年后死去
- 他获得的远比奖金更丰厚
- 探索的快乐是生命的最高奖励
- 这高级设备源于木工
-
John Harrison 用木头做了一个钟表
- 精度是每个月才有一秒误差
-
以前说约个时间
- 擦黑就去 晚吧晌
-
现在
- 有了钟表
- 就不一样了
- 精确到秒
- 就不一样了
- 有了钟表
- 库克船长从第二次航行的时候就带上h4了
- 用这个绘制了很多高精度的海图
- 他管h4叫做不会失败的朋友(never-failing friend)
- 这款海军经线仪(Marine Chronometer)
- 是世界上第一个全球定位系统
- Global Positioning System
- 是世界上第一个全球定位系统
- 这才有
- 大航海时代
- 日不落的英帝国
- 大航海时代
- 这次了解了时间差
- 用的是
- datetime.delta
- dateutil.relativedelta.relativedelta
- 用的是
- 古代用的是Harison发明的
- 基于蚂蚱装置的怀表H4
- 有了精准的定时器
- 从而开启的大航海时代
- 大航海时代
- 英国代表团 曾经带着H4 和各种先进设备
- 来到中国
- 英国代表团 曾经带着H4 和各种先进设备
- 这是怎么一个过程呢?🤔
- 下次再说👋🏻