2011-12-28 30 views
7

Yönteme iletilen bir hafta numarası için, hafta sonu & bitiş tarihi almak istiyorum. i 51 olarak hafta numarasını ve 2011 olarak yıl geçmesi Örneğin, benim bana bunu başarmak yardımcı olacak herhangi bir yöntemleri var 18 Dec 2011 olarak tarih veandroid hafta numarası ve yıldan hafta başlangıç ​​ve bitiş tarihi olsun.

24 Dec 2011 olarak bitiş tarihi dönmelidir?

+0

MonthDisplayHelper & JodaTime kullanmayı denedim, ancak bir şekilde gerekli olanı elde edemedi. Thanx Sunil & Chase .. ur çözümünü deneyecek ve 2015'in – AndroidGuy

cevap

19

Bir hafta Sen java.util.Calendar sınıfını kullanmak gerekir

void getStartEndOFWeek(int enterWeek, int enterYear){ 
//enterWeek is week number 
//enterYear is year 
     Calendar calendar = Calendar.getInstance(); 
     calendar.clear(); 
     calendar.set(Calendar.WEEK_OF_YEAR, enterWeek); 
     calendar.set(Calendar.YEAR, enterYear); 

     SimpleDateFormat formatter = new SimpleDateFormat("ddMMM yyyy"); // PST` 
     Date startDate = calendar.getTime(); 
     String startDateInStr = formatter.format(startDate); 
     System.out.println("...date..."+startDateInStr); 

     calendar.add(Calendar.DATE, 6); 
     Date enddate = calendar.getTime(); 
     String endDaString = formatter.format(enddate); 
     System.out.println("...date..."+endDaString); 
    } 
+0

yılını bilebilir, 2016 bir hafta daha gelecektir ama 2013.2014 tam olarak gelecektir ... Bu, sıçrama yılı konusudur .. –

+0

Hi Kamal, yukarıdaki herhangi bir çözüm bahsedilen sorun? – Deva

3

birinci ve bitiş tarihini almak için aşağıdaki yöntemi kullanabilirsiniz. Yılı Calendar.YEAR ve yılın haftasıyla public void set(int field, int value) yöntemini kullanarak Calendar.WEEK_OF_YEAR ile ayarlayabilirsiniz.

Yerel ayar doğru şekilde ayarlandığı sürece, haftanın ilk gününü değiştirmek için setFirstDayOfWeek kullanabilirsiniz. Takvim örneğiniz tarafından temsil edilen tarih, başlangıç ​​tarihiniz olacaktır. Bitiş tarihiniz için 6 gün ekleyin.

Calendar calendar = new GregorianCalendar(); 
// Clear the calendar since the default is the current time 
calendar.clear(); 
// Directly set year and week of year 
calendar.set(Calendar.YEAR, 2011); 
calendar.set(Calendar.WEEK_OF_YEAR, 51); 
// Start date for the week 
Date startDate = calendar.getTime(); 
// Add 6 days to reach the last day of the current week 
calendar.add(Calendar.DAY_OF_YEAR, 6); 
// End date for the week 
Date endDate = calendar.getTime(); 
İlgili konular