-1

私はライブティッカーに取り組んでおり、インターネットで見つけたコードの助けを借りて、なんとか機能しているものを見つけることができました。

私はデータベースから日付を取得し、それを分割してミリ秒に入れています。これが私が見つけたコードが引き継ぐ場所です。

残りの日は日を除いて完璧に動作しますが、常に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 );


         }

今、私は日がうまくいかない理由がわかりませんか?

何が間違っているのかについてのアイデアはありますか?

ありがとう、クリス

4

1 に答える 1

1

これとは異なる日、時間、分、秒を取るつもりなら、コードは私のために働いています。

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-06-29T11:49:47.860 に答える