1
對於任務,我必須在發票日期後30天的到期日編碼。當我運行我的程序時,我沒有得到正確的日期。我不確定我做錯了什麼。任何幫助,將不勝感激。從類毫秒日期未返回預期結果
代碼創建和格式截止日期:
// a method that returns the due date
public Date getDueDate()
{
Date dueDate = new Date(invoiceDate.getTime() +
(30 * 24 * 60 * 60 * 1000));
return dueDate;
}
// a method that returns the formatted due date
public String getFormattedDueDate()
{
DateFormat shortDueDate = DateFormat.getDateInstance(DateFormat.SHORT);
return shortDueDate.format(this.getDueDate());
}
從主類代碼它調用getFormattedDueDate:
public static void displayInvoices()
{
System.out.println("You entered the following invoices:\n");
System.out.println("Number\tTotal\tInvoice Date\tDue Date");
System.out.println("------\t-----\t------------\t--------");
double batchTotal = 0;
int invoiceNumber = 1;
while (invoices.size() > 0)
{
Invoice invoice = invoices.pull();
System.out.println(invoiceNumber + "\t " + invoice.getFormattedTotal()
+ " " + invoice.getFormattedDate()
+ "\t " + invoice.getFormattedDueDate());
invoiceNumber++;
batchTotal += invoice.getInvoiceTotal();
}
你得到了什麼結果?你期望的結果是什麼? – wallyk 2012-02-15 01:56:54
發票日期是今天,我預計2012年3月15日。返回的日期是2012年1月25日 – gcalan 2012-02-15 01:59:00
coderanch上的海報爲我提供了答案。我想我會在這裏添加它,以防其他人有類似的問題。在發票日期增加30天的計算中,應爲「(30L * 24 * 60 * 60 * 1000)」。我測試了它,這確實有效。我不確定什麼「L」完成,但會查找它。 – gcalan 2012-02-15 02:19:25