2017-08-01 6 views
-2

誰かが私に私は、スクリプトで見つかったこのMethodeの機能を説明することができますgetQauntdate()メソッドの説明

public static String getQuantDate(final int quant) { 
     final SimpleDateFormat sdf = new SimpleDateFormat("MMdd"); 
     final int dayOfYear = quant; 
     final Calendar calendar = Calendar.getInstance(); 
     calendar.set(Calendar.DAY_OF_YEAR, dayOfYear); 
     final Date dat = calendar.getTime(); 
     return sdf.format(dat); 
    } 

を私はgolangするためにそれをtraslateする必要がありますが、私はそれを翻訳する機能を理解していませんでした!注釈付き

+0

現在の年の日番号を月と日の数字の文字列に変換します。たとえば、今日は2017年の213日目です。このメソッドに213を渡すと、文字列「0801」(8月1日)が返されます。 – Jesper

+0

@Jesper yeah、それはかなり壊れているようだ。入力として年を受け入れないので、うるう年を適切に処理する方法は実際にはありません。 – captncraig

+0

@captncraig実際には、現在の年が常に使用されるため、2月29日以降のうるう年にこのメソッドを呼び出すと、同じ入力値に対してうるう年以外の結果と異なる結果が返されます。 – Jesper

答えて

0

:目的球はそれを、数を取る日付に変換し、フォーマットのような

// format string. This returns MMdd 
    final SimpleDateFormat sdf = new SimpleDateFormat("MMdd"); 

    //redundant re-declaration of function parameter 
    final int dayOfYear = quant; 

    // make a date and set DAY_OF_YEAR to quant 
    final Calendar calendar = Calendar.getInstance(); 
    calendar.set(Calendar.DAY_OF_YEAR, dayOfYear); 

    // get date and return it in the correct format 
    final Date dat = calendar.getTime(); 
    return sdf.format(dat); 

が見えます。

10101

13をもたらすであろう0113

32に等々0201

を与えると考えを与えるだろう。

閏年などの変数をどのように処理するのかは明らかではありません。それは非常に高品質なコードのようには見えません。私はあなたの問題を分析し、良い仕様を考え出すことをお勧めします。

+0

私は今、多くの感謝を理解しています! –