Java 计算2038年之前的天、小时、分钟、秒

Java 计算2038年之前的天、小时、分钟、秒,java,computer-science,Java,Computer Science,我需要获取从当前时间到2038年的天、小时、分钟、秒。我的输出有问题 public class Assignment1 { public static void main(String[] args) { long now = System.currentTimeMillis(); long y2k38 = (long) Math.pow(2, 31)*1000; long diffmillis = y2k38-now; long diffsec = (y2k38-now)/1000; long

我需要获取从当前时间到2038年的天、小时、分钟、秒。我的输出有问题

public class Assignment1 {
public static void main(String[] args) {
long now = System.currentTimeMillis();
long y2k38 = (long) Math.pow(2, 31)*1000;
long diffmillis = y2k38-now;
long diffsec = (y2k38-now)/1000;
long diffmin = diffsec/60;
long diffhours = diffmin/60;
long diffdays = diffhours/24;

System.out.printf(
    "Y2K38 will occur in %d days.\n"+
    "Y2K38 will occur in %d hours.\n"+
    "Y2K38 will occur in %d minutes.\n"+
    "Y2K38 will occur in %d seconds.\n",
    (diffdays%24),(diffhours%60), (diffmin%60),(diffsec%60));
}

}

您的主要问题是,您的
diffdays
diffhours
diffmin
diffsec
都只是与当前时间戳没有实际交互的常量,因此
y2k38 diffdays
y2k38 diffhours
y2k38 diffmin
只是常量减去常量

您可能需要使用
y2k38 now
计算2038年之前的毫秒数,然后将其转换为所需的单位


例如,
(现在是y2k38)/1000
应该给你几秒钟的时间,直到2038年,
(现在是y2k38)/(60*1000)
应该给你几分钟,等等。

这不是一个代码完成站点。到目前为止,您编写了哪些代码?你被困在哪里?欢迎分享你的尝试。如果你在某个问题上遇到麻烦,我们会帮助你。请参考这些链接,询问适当的问题()、()和()@connorp刚刚发布it@Michael我不知道,对不起。我刚刚发布了我遇到问题的代码。我运行时没有得到准确的数字。谢谢您的帮助!我是不是应该把不同的日子、时间等都处理掉?如果你对它们没有任何用处的话,你可以这样做。或者,您可以将适当的差值存储在此处并显示它们。无论哪种方式,它都不会对代码的功能产生太大的实际影响。
public class Assignment1{public static void main(String[]args){long now=System.currentTimeMillis();long y2k38=(long)Math.pow(2,31);System.out.printf(“y2k38将在%f天内发生。\n”+“Y2K38将在%f小时内出现。\n”+“Y2K38将在%f分钟内出现。\n”+“Y2K38将在%f秒内出现。\n”,(Y2K38现在)/(1000*60*60*24),(Y2K38现在)/(1000*60),(Y2K38现在)/(1000*60),;}
这是我更新的代码,但我在编译它时仍然遇到问题。我收到一个错误:Assignment1.java:12:error:“;”expectedIt由于缺少格式很难分辨,但是您是否关闭了printf语句的括号?