如果在程序中有人给我天数(ab ="天和#34;)我需要设置变量' days'作为相同的数字(' val'中的值),如果有人给我几个月(ab ="月和#34;)那么我需要转换(值' val&#如果有人给了我多年(ab ="年")那么我需要将它转换(以及#39; val')为几天。即,如果用户在变量' ab'中指定了值的类型(即,它是月份,年份还是日期)。变量' val'中的数字(天/月/年),我需要获得变量'天数的天数。
例如ab ="年"和val = 3然后天是1095(近似值)。
我尝试的内容如下。对于上述问题,这是正确的方法吗?提前谢谢。
public class conversionofdate {
public static void main(String args[]) {
String ab = "days";
int val = 0, days, month = 0, years = 0;
switch (ab) {
case "days":
days = val;
break;
case "months":
days = val * 30;
break;
case "years":
days = val * 12 * 30;
break;
default:
System.out.println("Incorrect value");
}
}
}
答案 0 :(得分:3)
所以你想在java中跟踪时间。你应该先阅读:
https://docs.oracle.com/javase/tutorial/datetime/iso/index.html
你应该意识到这不是一个简单的问题。日期和时间有微妙的细微差别导致思维弯曲错误在这里探讨:
Why is subtracting these two times (in 1927) giving a strange result?
在这里
Java string to date conversion
此外,请注意,并非地球上的每个人都使用我们大多数英语使用者使用的格里高利历。除了具有不同天数和闰年的月份之外,还有闰秒等有趣的奥术问题。自1970年1月1日以来,还有一些系统可以测量时间,以毫秒为单位,不会给出关于校正的图。当这些不同的系统变成文档中的字符串并被读入使用不同系统的计算机时,尝试找出错误的位置是非常光荣的乐趣。
简而言之,你的问题的答案超出了在堆栈溢出答案中可以做到的正义范围。我只想说,远离java.util.Date
并使用java.util.Calendar
。 Date will break your heart。