1 p /哈雷“Tiberius"算法

本文关键字:quot 算法 Tiberius 哈雷 | 更新日期: 2023-09-27 18:13:29

所以我在大学里没有任何启蒙就开始编程,假设我们已经知道了基础知识,但我之前没有上过任何c#课程。

这个练习要求我确定过去3000年来提比略彗星的所有出现。这颗彗星每75年116天19小时12分钟出现一次。上一次我们看到它是在1986年2月5日21点29分。我计算了倒数第二个日期:1910年285天(10月12日)2小时17分钟。我不能把这个简单的演算转换成一个合适的c#程序。我需要一些建议,也许一些代码与传入解释将帮助我更多。如果你能出力,我会非常满意的。

我想把年、日、小时换算成天,然后减去这75年(已经换算成分钟)。从1986年回到3000年前,这将继续下去。75年116天19小时12分钟= 27491.8034726天我们开始倒数的那一年1986年36天21小时29分钟=724926.8951389天我想我们会在每次出现时递减最后一个数字,每次出现我们都会打印年份,日期,时间。

1 p /哈雷“Tiberius"算法

DateTime和TimeSpan是有用的类:

var lastOccurrence = new DateTime(1986, 2, 5, 21, 29, 0);
var previous = lastOccurrence.AddYears(-75).AddDays(-116).AddHours(-19).AddMinutes(-12);
// Previous is now 10/12/1910 2:17:00

我让这个循环回到3000年前,作为读者的练习;)


我原本希望能够创建一个TimeSpan,而只使用DateTime。方法,但它看起来像TimeSpan没有一个构造函数需要数年,它可能不会正确处理闰年,所以我认为上面是一个更好的解决方案。