所以我在没有任何启动的情况下开始在大学编程,因为我们已经了解了基础知识,但我之前没有参加任何c#课程。
这次演习要求我确定过去3000年来Tiberius彗星的所有外观。这颗彗星出现在75年,116天,19小时和12分钟。上次我们看到它是1986年2月21日21:29。我计算倒数第二个日期:1910 285天(10月12日)2小时:17分钟。我不能将这个简单的微积分转换成适当的c#程序。我需要一些建议,也许一些带有不同解释的代码会对我有所帮助。如果你能做出贡献,我会非常满意。
我正在考虑将岁月,天和小时转换为天,然后减去75年(已经转换为分钟)。这将在它从1986年回溯到3000年之前继续。 75年116天19小时12分钟= 27491.8034726天我们开始倒计时1986年36天21小时29分钟= 724926.8951389天我想我们将每次出现减少这最后一个数字,并且每次出现我们将打印年份,日期,时间。
答案 0 :(得分:1)
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.Subtract方法,但看起来TimeSpan没有一个需要多年的构造函数,它可能无法处理飞跃年正确,所以我认为以上是一个更好的解决方案。