我正在尝试使用线程建立一种计时机制,但在获取两个日期之间的时差并使用该时差获取当前剩余时间百分比时遇到了问题。这是我要尝试原型化的概念:

这是我的实现:
long startMilisecs = System.currentTimeMillis();
long currentMilisecs;
long endDateMilisecs = getEndDate().getTime();
int diffMillisecs = ((int)(endDateMilisecs - startMilisecs) / 1000) / 60;
int currPerc;
while (startMilisecs <= endDateMilisecs)
{
currentMilisecs = (int) System.currentTimeMillis();
currPerc = ((int)currentMilisecs * 100) / diffMillisecs;
System.out.println(" Current Percentage: " + currPerc);
}
Run Code Online (Sandbox Code Playgroud)
此代码的问题在于百分比不是从0开始,而是从20到40%。
你能告诉我这是怎么了吗?对于这个问题,我只能使用线程。