私はライブティッカーに取り組んでおり、インターネットで見つけたコードの助けを借りて、なんとか機能しているものを見つけることができました。
私はデータベースから日付を取得し、それを分割してミリ秒に入れています。これが私が見つけたコードが引き継ぐ場所です。
残りの日は日を除いて完璧に動作しますが、常に30日プラスのように見えますが、多くが残っていますか?
これはコードです:
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 );
}
今、私は日がうまくいかない理由がわかりませんか?
何が間違っているのかについてのアイデアはありますか?
ありがとう、クリス