[英]Write more efficiently in Java
你們能幫我顯示Java中的時差嗎? 我已經完成了,但是有些代碼不需要重寫。
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;
}
}
輸出應該相同,例如:9/24/17 11:31 PM
2017 年 9 月 24 日
2017 年 9 月 24 日
2017 年 9 月 24 日,星期日
2017 年 9 月 24 日
17 年 9 月 24 日
下面的代碼幾乎與您的代碼一樣,但通過將其移動到單獨的方法來刪除邏輯的重復部分。每次您需要使用指定的日期格式打印任何日期時,您都可以通過傳遞Date
對象來調用printDates
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));
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.