0

問題は、サーバーから日付を取得し、現在の日付とサーバーから取得した日付の差に基づいて特定の日を追加したいことです。

serverDate - 現在の日付

作業:これは私が日の差を計算する方法です,

String s=formater.format(currentDate);
long d1 = formater.parse(s).getTime();
long d2=formater.parse(serverDate).getTime();
int totaldays=(int)Math.abs((d1-d2)/(1000*60*60*24));

作業: 現在の日付から 5 日を追加した日付を作成するには、

    if(totaldays==5)
        {
        Calendar c=Calendar.getInstance();
        c.add(Calendar.DATE, 0);
        System.out.println("value of new server date "+c.getTime());
        }

   else if(totaldays==4)
        {
        Calendar c=Calendar.getInstance();
        c.add(Calendar.DATE, 1);
        System.out.println("value of new server date "+c.getTime());
        }

else if(totaldays==3)
        {
        Calendar c=Calendar.getInstance();
        c.add(Calendar.DATE, 2);
        System.out.println("value of date "+c.getTime());
        }

else if(totaldays==2)
        {
        Calendar c=Calendar.getInstance();
        c.add(Calendar.DATE, 3);
        System.out.println("value of new server date "+c.getTime());
        }

else if(totaldays==1)
        {
        Calendar c=Calendar.getInstance();
        c.add(Calendar.DATE, 4);
        System.out.println("value of new server date "+c.getTime());
        }

else if(totaldays==0)
            {
            Calendar c=Calendar.getInstance();
            c.add(Calendar.DATE, 0);
            System.out.println("value of new server date "+c.getTime());
            }

最終的には、合計日数の差が大きくなるようにこのユースケースを変更する必要があるかもしれません。その場合、比較の数を増やす必要がありますか、または特定の日付に到達するために使用できるトリックはありますか.

4

2 に答える 2

4

たとえば、MAX という名前の変数を使用します。あなたのコードでは次のようになります

int max = 5;

次に、次のことができます。

c.add(Calendar.DATE, max - totaldays);

また

c.add(Calendar.DATE, 5 - totaldays);
于 2013-02-04T12:16:11.797 に答える
1

わかりました、質問のコメントから、要件を少し言い換えてみます。

totaldaysserverDate(ギャップ) はとの差ですcurrentDate

  • ギャップが 5 未満の場合、ギャップを 5 にする
  • ギャップ=5 の場合、何もしない
  • ギャップが 5 より大きい場合、ギャップを serverDate に追加します

上に書いてあることが本当なら

  • 最初に計算しますtotaldays

次に、1行で問題が解決します。

c.add(Calendar.DATE, totaldays>5?totaldays:5-totaldays);

ところで、質問に必要なものを明確に説明する必要があります。幸運を!

于 2013-02-04T12:32:13.867 に答える