- ベストアンサー
配列プログラムの作成日時拡張と要約
- 配列プログラムを簡潔にする方法について考えています。具体的には、CustomerCardに作成日時を格納するフィールドを追加し、printInfoメソッドで表示することを希望しています。
- CustomerManagerのaddメソッドでCustomerCardのcreatedに現在日時を設定したいと思っています。
- また、プログラムの要約については、配列プログラムを簡潔にするための方法を考えています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
作成日時はPCの内部時計を利用しています。 本来は手打ちなのかもしれませんが、理解すれば簡単に改変できることでしょう。 詳細を省き、ソースを丸ごと載せますが必ず理解してください。 (自分の力でやらないような宿題や課題でないことを望むばかりです。ただし理解すればOK) gistにもコードを掲載しておきました。(みやすいので) https://gist.github.com/3111945 import java.util.Calendar; class CustomerManager { private CustomerCard[] customers = new CustomerCard[5]; private int index = 0; public static void main(String[] args) { CustomerManager manager = new CustomerManager(); manager.addCustomerCard("山田一郎", GetNowTime()); manager.addCustomerCard("鈴木太郎", GetNowTime()); manager.addCustomerCard("田中次郎", GetNowTime()); manager.printAllInfo(); } private void addCustomerCard(String name, String created) { customers[index] = new CustomerCard(1 + index, name, created); index++; } private static String GetNowTime() { Calendar now = Calendar.getInstance(); int Y = now.get(Calendar.YEAR); // 年 int M = now.get(Calendar.MONTH); // 月 int D = now.get(Calendar.DAY_OF_MONTH); // 日 int h = now.get(Calendar.HOUR_OF_DAY); // 時 int m = now.get(Calendar.MINUTE); // 分 int s = now.get(Calendar.SECOND); // 秒 return Y + "年" + M + "月" + D + "日" + h + "時" + m + "分" + s + "秒"; } public void printAllInfo() { for (int i = 0; customers[i] != null; i++) { System.out.print("ID=" + customers[i].id + ", "); System.out.print("名前=" + customers[i].name + ", "); System.out.println("作成日時=" + customers[i].created); } } } class CustomerCard { String name, created; int id; public CustomerCard(int id, String name, String created) { this.created = created; this.name = name; this.id = id; } public String getName() { return this.name; } }
お礼
お手数かけます。ありがとうございます。感謝です。