Android 安卓倒计时问题
我一直在开发一个实时的股票代码,在互联网上找到的一些代码的帮助下,我设法找到了某种工作 我从数据库中获取一个日期,并将其拆分成毫秒,这就是我找到的代码接管的地方 现在剩下的工作都很完美,除了几天,似乎总是30天,再加上剩下多少天 代码如下:Android 安卓倒计时问题,android,Android,我一直在开发一个实时的股票代码,在互联网上找到的一些代码的帮助下,我设法找到了某种工作 我从数据库中获取一个日期,并将其拆分成毫秒,这就是我找到的代码接管的地方 现在剩下的工作都很完美,除了几天,似乎总是30天,再加上剩下多少天 代码如下: GregorianCalendar endDate = new GregorianCalendar(Integer.parseInt(separated[0]), Integer.parseInt(separated[1]), Intege
GregorianCalendar endDate = new GregorianCalendar(Integer.parseInt(separated[0]), Integer.parseInt(separated[1]), Integer.parseInt(separated[2]), Integer.parseInt(Time[0]), Integer.parseInt(Time[1]), 00);
GregorianCalendar startDate = new GregorianCalendar(year, month, day, hours, minutes, seconds);
long diffInMs = endDate.getTimeInMillis() - startDate.getTimeInMillis();
new CountDownTimer(diffInMs, 1000) {
public void onTick(long millisUntilFinished) {
int seconds = (int)(millisUntilFinished / 1000) % 60 ;
int minutes = (int)((millisUntilFinished / (1000*60)) % 60);
int hours = (int)((millisUntilFinished / (1000*60*60)) % 24);
int days = (int)((millisUntilFinished / (1000*60*60*24)) % 365);
//int years = (int)(millisUntilFinished / 1000*60*60*24*365);
ArrayList<String> timeArray = new ArrayList<String>();
// if(years > 0)
// timeArray.add(String.valueOf(years) + "y");
if(days > 0)
timeArray.add(String.valueOf(days) + "d");
if(hours>0)
timeArray.add(String.valueOf(hours) + "h");
if(minutes>0)
timeArray.add(String.valueOf(minutes) + "min");
if(seconds>0)
timeArray.add(String.valueOf(seconds) + "sec");
String time = "";
for (int i = 0; i < timeArray.size(); i++)
{
time = time + timeArray.get(i);
if (i != timeArray.size() - 1)
time = time + ", ";
}
if (time == "")
time = "0 sec";
Countdown.setText("Database Lock: " + time );
}
GregorianCalendar endDate=新的GregorianCalendar(Integer.parseInt(分隔[0])、Integer.parseInt(分隔[1])、Integer.parseInt(分隔[2])、Integer.parseInt(时间[0])、Integer.parseInt(时间[1])、00;
GregorianCalendar startDate=新的GregorianCalendar(年、月、日、时、分、秒);
long diffInMs=endDate.getTimeInMillis()-startDate.getTimeInMillis();
新的倒计时(diffInMs,1000){
公共无效条(长毫秒直至完成){
整数秒=(整数)(毫秒/1000)%60;
整数分钟=(整数)((毫微秒完成/(1000*60))%60);
整数小时=(整数)((千分之六十/(1000*60*60))%24);
整数天=(整数)((百万分位数/(1000*60*60*24))%365);
//整数年=(整数)(千分之一完工/1000*60*60*24*365);
ArrayList timeArray=新的ArrayList();
//如果(年数>0)
//timeArray.add(String.valueOf(years)+“y”);
如果(天数>0)
timeArray.add(String.valueOf(days)+“d”);
如果(小时数>0)
timeArray.add(String.valueOf(hours)+“h”);
如果(分钟>0)
timeArray.add(String.valueOf(minutes)+“min”);
如果(秒>0)
timeArray.add(String.valueOf(秒)+“秒”);
字符串时间=”;
对于(int i=0;i
现在我不明白为什么日子会不好过
有什么想法可能是错误的吗
谢谢,
Chris如果你想花一天、一小时、一分钟、一秒的时间,那么代码对我来说就不同了
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class DateDiff{
public static void main(String[] args){
Date date = null;
Date date1 = new Date();
System.out.println(date1.toString());
try {
String str_date="Tue, 25 Jun 2012 05:43:27";
DateFormat formatter ;
//Date date ;
formatter = new SimpleDateFormat("EEE,dd MMM yy HH:mm:ss");
date = (Date)formatter.parse(str_date);
System.out.println("Today is " +date );
} catch (ParseException e)
{
System.out.println("Exception :"+e);
}
long diff = date1.getTime() - date.getTime();
long seconds = diff / 1000;
long minutes = seconds / 60;
long hours = minutes / 60;
long days = hours / 24;
System.out.println("Time in seconds: " + seconds
+ " seconds.");
System.out.println("Time in minutes: " + minutes
+ " minutes.");
System.out.println("Time in hours: " + hours
+ " hours.");
System.out.println("Time in days: " +days
+ " days.");
}
}
我试过你的代码,它运行得很好。举一个输入值的例子,它给出了错误的结果。它将这个日期从数据库中取出2012-07-07 13:00:00,然后将日期部分拆分,我做了一点修改,以阻止它崩溃,因为它试图将时间加上,然后再加上时间。总之,它说的是like 38d,23小时,31分钟,20秒??我已经弄明白了为什么我得到了一个不正确的倒计时日期..这与此有关:int month=gregoriacalendar.get(gregoriacalendar.month);似乎这部分给出了不正确的月份??它给出了5而不是6??