2017-09-24 19 views
-1

あなたはJavaで時差を表示するのに手伝ってもらえますか?私はそれをしましたが、書き直す必要のないコードがいくつかあります。 9/24/17 23:31より効率的にJavaで書く

2017年9月24日

2017年9月24日

9月24日(日曜日):

import java.text.DateFormat; 
import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

public class Time { 

    public static void main(String[] args) throws Exception { 
     Date dt = new Date(); 
     DateFormat[] dtformat = new DateFormat[6]; 
     dtformat[0] = DateFormat.getInstance(); 
     dtformat[1] = DateFormat.getDateInstance(); 
     dtformat[2] = DateFormat.getDateInstance(DateFormat.MEDIUM); 
     dtformat[3] = DateFormat.getDateInstance(DateFormat.FULL); 
     dtformat[4] = DateFormat.getDateInstance(DateFormat.LONG); 
     dtformat[5] = DateFormat.getDateInstance(DateFormat.SHORT); 
     System.out.println("Today :"); 
     for(DateFormat dateform : dtformat) 
      System.out.println(dateform.format(dt)); 

     String str = "May 21 1980"; 
     SimpleDateFormat df = new SimpleDateFormat("MMM dd yyyy"); 
     Date date = df.parse(str); 
     long epoch = date.getTime(); 

     Date dl = new Date(epoch); 
     DateFormat[] dlformat = new DateFormat[6]; 
     dlformat[0] = DateFormat.getInstance(); 
     dlformat[1] = DateFormat.getDateInstance(); 
     dlformat[2] = DateFormat.getDateInstance(DateFormat.MEDIUM); 
     dlformat[3] = DateFormat.getDateInstance(DateFormat.FULL); 
     dlformat[4] = DateFormat.getDateInstance(DateFormat.LONG); 
     dlformat[5] = DateFormat.getDateInstance(DateFormat.SHORT); 
      System.out.println("\nDate of Birth :"); 
      for(DateFormat dateform : dlformat) 
      System.out.println(dateform.format(dl)); 

      System.out.println("\nDifference Days: " + Diff(dl,dt) + " hari"); 
    } 
    public static long Diff(Date dl, Date dt) { 
     long diffdays = dt.getTime() - dl.getTime(); 
     long days = diffdays/(24 * 60 * 60 * 1000); 
     return days; 
    } 
} 

出力は次のように、同じである必要があります、2017

2017年9月24日

9/24/17

+2

このコードが機能する場合は、[codereview.se]に質問してください。 –

+0

@AndyTurnerこの質問にフラグを立てるときにこの質問を掲載する代替サイトとしてCRを選択できないのはなぜですか? –

+0

さて、あなたがまだ古くなった古くなったクラスの「Date」や、面倒な「SimpleDateFormat」を苦労している理由は何ですか?最近の 'LocalDate'と' DateTimeFormatter.ofLocalizedDate() 'を使うことをお勧めします。現代のAPIは非常に使い勝手が良いです。 –

答えて

0

以下のコードは、あなたのコードとほとんど同じですが、ロジックの繰り返しセクションを分離したメソッドに移して削除します。指定された日付フォーマットで日付をすべて印刷する必要がある場合は、printDates a Dateオブジェクト

import java.text.DateFormat; 
import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

public class Time { 

    public static void main(String[] args) throws Exception { 
     Date dt = new Date(); 
     printDates(dt); 

     String str = "May 21 1980"; 
     SimpleDateFormat df = new SimpleDateFormat("MMM dd yyyy"); 
     Date date = df.parse(str); 
     long epoch = date.getTime(); 

     Date dl = new Date(epoch); 
     printDates(dl); 

      System.out.println("\nDifference Days: " + Diff(dl,dt) + " hari"); 
    } 
    public static long Diff(Date dl, Date dt) { 
     long diffdays = dt.getTime() - dl.getTime(); 
     long days = diffdays/(24 * 60 * 60 * 1000); 
     return days; 
    } 


    public static void printDates(Date date){ 
      DateFormat[] dlformat = new DateFormat[6]; 
      dlformat[0] = DateFormat.getInstance(); 
      dlformat[1] = DateFormat.getDateInstance(); 
      dlformat[2] = DateFormat.getDateInstance(DateFormat.MEDIUM); 
      dlformat[3] = DateFormat.getDateInstance(DateFormat.FULL); 
      dlformat[4] = DateFormat.getDateInstance(DateFormat.LONG); 
      dlformat[5] = DateFormat.getDateInstance(DateFormat.SHORT); 
      System.out.println("\nDate of Birth :"); 
      for(DateFormat dateform : dlformat) 
      System.out.println(dateform.format(date)); 
    } 
} 
+0

助けてくれてありがとうございます。 –

+0

あなたはようこそ –

関連する問題