إضافة أيام إلى تاريخ
-
06-07-2019 - |
سؤال
لدي البرنامج الذي يحتاج إلى البدء في 1/1/09 و عندما أبدأ يوم جديد, البرنامج سوف تظهر في اليوم التالي.هذا ما لدي حتى الآن:
GregorianCalendar startDate = new GregorianCalendar(2009, Calendar.JANUARY, 1);
SimpleDateFormat sdf = new SimpleDateFormat("d/M/yyyy");
public void setStart()
{
startDate.setLenient(false);
System.out.println(sdf.format(startDate.getTime()));
}
public void today()
{
newDay = startDate.add(5, 1);
System.out.println(newDay);
//I want to add a day to the start day and when I start another new day, I want to add another day to that.
}
أنا على الحصول على الخطأ باطلا ولكن من المتوقع الباحث في newDay = startDate.إضافة(5, 1);' ماذا يجب أن أفعل ؟
المحلول
على Calendar
كائن له add
الأسلوب الذي يسمح بإضافة أو طرح قيم حقل معين.
على سبيل المثال ،
Calendar c = new GregorianCalendar(2009, Calendar.JANUARY, 1);
c.add(Calendar.DAY_OF_MONTH, 1);
الثوابت من أجل تحديد الحقل يمكن العثور عليها في الحقل "الموجز" من Calendar
فئة.
فقط للرجوع إليها في المستقبل ، جافا API المواصفات يحتوي على الكثير من المعلومات المفيدة حول كيفية استخدام الطبقات التي هي جزء من API جافا.
تحديث:
أنا على الحصول على الخطأ باطلا ولكن توقع الباحث في newDay = بداية التأريخ.إضافة(5, 1);' ماذا يجب أن تفعل ؟
على add
الطريقة لا يعود أي شيء ، وبالتالي محاولة لتعيين نتيجة الدعوة Calendar.add
غير صالح.
المحول البرمجي خطأ يشير إلى أن أحد يحاول تعيين void
إلى متغير مع نوع من int
.هذه ليست صالحة ، كما لا يمكن للمرء أن تعيين "لا شيء" إلى int
متغير.
مجرد تخمين ولكن ربما قد يكون هذا ما يحاول أن يتحقق:
// Get a calendar which is set to a specified date.
Calendar calendar = new GregorianCalendar(2009, Calendar.JANUARY, 1);
// Get the current date representation of the calendar.
Date startDate = calendar.getTime();
// Increment the calendar's date by 1 day.
calendar.add(Calendar.DAY_OF_MONTH, 1);
// Get the current date representation of the calendar.
Date endDate = calendar.getTime();
System.out.println(startDate);
System.out.println(endDate);
الإخراج:
Thu Jan 01 00:00:00 PST 2009
Fri Jan 02 00:00:00 PST 2009
ما يحتاج إلى أن ينظر ما Calendar
هو في الواقع.
A Calendar
لا تمثيل التاريخ.بل هو تمثيل التقويم ، حيث يتم حاليا مشيرا في.من أجل الحصول على تمثيل من حيث التقويم مشيرا في الوقت الراهن ، ينبغي للمرء الحصول على Date
من Calendar
باستخدام getTime
الأسلوب.
نصائح أخرى
إذا كنت يمكن أن البديل هو شرط الحكمة، نقل كل ما تبذلونه من تاريخ / يحتاج إلى JODA، التي هي مكتبة أفضل بكثير، مع مكافأة إضافية أن كل شيء تقريبا غير قابل للتغيير الوقت، وهذا يعني خاصية تعدد يأتي في مجانا.