我正在开发一个java程序,它计算一定数量的秒数,包括年,天,小时,一直到计划。我可以进入谷歌搜索栏" 31年,259天,5小时,54分钟"并且我会得到一个结果陈述" 31.7097916年。"它如何计算?如果可能的话,我想在我的程序中实现它。
答案 0 :(得分:3)
算一算,31年,259天,5小时54分钟
float total = 31f;
// Days to years
total = 259 / 365;
// Hours to years
total = total + ((5 / 24) / 365);
// Minutes to years
total = total + (((54 / 60) / 24) / 365);
System.out.println("Total = " + total);
正如您所看到的,这有一个逻辑。对于更复杂(但仍然非常简单)的实现
public float daysToYear(int days){
return days / 365;
}
public float hoursToYear(int hours){
return (hours / 24) / 365;
}
public float minsToYear(int mins){
return ((min / 60) / 24) / 365;
}
public float secsToYear(int secs){
return (((secs / 60) / 60) / 24) / 365;
}
public float millisToYear(int millis){
return ((((millis / 1000) / 60) / 60) / 24) / 365;
}
正如您所看到的,这些转换本身可以简化和修改,以适应您需要的任何内容;例如,您可以将millisToYear()
简化为
public float millisToYear(double millis){
return secsToYear(millis/1000);
}
注意参数类型的变化是从int加倍。当然,正如下面的评论中所提到的,如果你想要实现更多的复杂性(时区,闰年等),那么你需要考虑这些。再次,简单的逻辑。如果你需要帮助评论,我会改进我的答案,如果你对它非常好:P