如何计算朱利安算术
How to compute julian arithmetic
我有问题,我需要找到一个18位的当前朱利安时间戳和一个恒定的分钟量之间的差异,结果应该是一个18位的朱利安时间戳。
现在我有了库提供的api来获得18位的当前朱利安时间戳,但我无法找到一种简单的方法来计算其余部分。
J = 18-digit current julian-timestamp; /* this I have */
M = an integer, which indicates the number of minutes elapsed.
J-M = R is a 18-digit julian-timestamp
请给出一个计算r的简化方法
通常的用法是将儒略历日期存储在双精度类型中。根据维基百科上的儒略历,2000年1月1日12:00 utc的儒略历是2451545。所以我们需要大约7个十进制数字来处理一天。因为双精度数的精度大约是13位小数,所以我们还剩下6位小数来表示一天的小数。由于一天包含86400秒,因此浮点数中的儒略历日可以代表公元前4713年1月1日中午以来的所有日期,在预言儒略历中精度至少为1秒。
由于儒略历(同一参考文献)是从公元前4713年开始的7980年的时间间隔,它仍然可以代表从现在开始的大约2000年。
所以你应该把你的时间戳转换成双精度,加上(double) M / 1440.
,你就得到了新的朱利安时间戳。
如果您以后想在我们的公历中转换朱利安日,您只需使用与2000年1月1日12:00 UT的差值,即2,451,545
我认为纸飞机的问题,结合纸飞机在7月22日15:55Z的评论是正确的。我赞同Serge Ballesta关于儒略历定义的评论。
J =儒略历,例如,当前为2457226.38645800000。无论是双浮点数还是长整数都不能容纳这么多的数字,所以我想这一定是一个字符串。
M =整数,表示要加到j上的分钟数。
你的第一个任务是弄清楚你的结果必须有多精确,以及你必须涵盖的日期范围。如果你不要求精度超过几微秒,你可以把J分成两个整数,整数部分和分数部分。然后用M除以1440将分钟数转换成天数。然后将结果添加到j的分数部分。接下来,处理分数部分和整数部分之间可能发生的进位。然后将整数部分、小数点部分、分数部分和右pad赋值给一个字符串,这些部分的数字之和为18位。
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 递归函数计算序列中的平方和(并输出过程)
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的字符计数代码计算错误.为什么
- 在计算中使用二的幂有多有利可图
- 如何计算文件中的"columns"数?
- 计算排序向量的向量中唯一值的计数
- 如何使用 std::累积在 C++ 中计算总和立方体
- 使用Qt C++计算类似Git的SHA1哈希
- OpenCV C++.快速计算混淆矩阵
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- C++如何计算用户输入的数字中的偶数位数
- 如何计算数据类型的范围,例如int
- 类似枚举的计算常量
- 如何将朱利安的代码更改为公历并返回
- 根据朱利安日历计算月份
- 科普利安表格示例C++
- 计算概率C++伯努利试验
- 为伯努利数计算重构C到c++
- 如何计算朱利安算术