2013-05-08 4 views
1

В моем примере проекта я должен реализовать следующую неделю с понедельника по воскресенье в текстовом режиме (например, 6 мая >> 12 My). при нажатии следующей кнопки он должен показывать дату начала и дату начала следующей недели (например, 13 мая >> 19 мая). Я реализовал intial вид неделю с помощью следующего кодаНа следующей неделе реализация в android

Calendar c = Calendar.getInstance(); 
    c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); 
    SimpleDateFormat df = new SimpleDateFormat("dd MMMM"); 
    String printDate = df.format(c.getTime()); 
    //gestureEvent.setText(reportDate); 
    c.add(Calendar.DAY_OF_WEEK, 6); 
    String printDate2 = df2.format(c.getTime()); 
    gestureEvent.setText(reportDate +" >> "+reportDate2); 

на нажатие следующей кнопки недели я сделал это, но это статическое это была просто попытка попытка :)

OnClick будет вызывать эту функцию goNextWeek()

public void goNextWeek() 
{ 

    Calendar c = Calendar.getInstance(); 
    c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); 

     c.add(Calendar.DAY_OF_WEEK, 6); 
     System.out.println("End Date : " + c.getTime()); 

     SimpleDateFormat df = new SimpleDateFormat("dd MMMM"); 
     String reportDate = df.format(c.getTime()); 
     gestureEvent.setText(reportDate); 
     c.add(Calendar.DAY_OF_WEEK, dates); 
     c.add(Calendar.DAY_OF_WEEK, 1); 
     System.out.println("End Date asdfadf: " + c.getTime()); 


} 

скажите, пожалуйста, как показать следующую дату начала и окончания следующей недели?

+2

Пожалуйста, ваши лучшие усилия по решению этой проблемы и объяснить, где вы застряли. –

+0

Пожалуйста, проверьте эту ссылку: http://stackoverflow.com/questions/6617854/get-start-and-end-of-week-on-android – andy

ответ

2

Пожалуйста, сформулируйте Ваши вопросы.

Calendar mCalendar = new GregorianCalendar(); 
     mCalendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); 
     SimpleDateFormat mDF = new SimpleDateFormat("dd MMMM"); 
     String printDate = mDF.format(mCalendar.getTime()); 
     mCalendar.add(Calendar.DAY_OF_MONTH, 6); 
     String printDate2 = mDF.format(mCalendar.getTime()); 

     System.out.println(printDate + " >> " + printDate2); 
     gestureEvent.setText(printDate + " >> " + printDate2); 

Обновление для реализации на кнопку

написать метод, который будет принимать НомерНедели в Params ..

private static String getNextWeek(int weekFromToday) { 
     Calendar mCalendar = new GregorianCalendar(); 
     mCalendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); 
     mCalendar.set(Calendar.WEEK_OF_YEAR, 
       mCalendar.get(Calendar.WEEK_OF_YEAR) + weekFromToday);   

     SimpleDateFormat mDF = new SimpleDateFormat("dd MMMM"); 
     String printDate = mDF.format(mCalendar.getTime()); 
     System.out.println(printDate); 

     //gestureEvent.setText(reportDate); 
     mCalendar.add(Calendar.DAY_OF_MONTH, 6); 
     String printDate2 = mDF.format(mCalendar.getTime()); 
     System.out.println(printDate + " >> " + printDate2); 
     return printDate + " >> " + printDate2;   
    } 

Теперь declaire статический подал в

private static int weekNumber = -1; 

и писать ниже код на кнопку мыши

weekNumber = weekNumber + 1; 
gestureEvent.setText(getNextWeek(weekNumber)); 

Это будет работать.

Днем кодирования :)

+0

thanx :) .. но может у меня сказать, когда я нажму снова Я хочу, чтобы на следующей неделе начались и закончились недели, как 06 мая >> 12 мая, 13 мая >> 19 мая ....? – user2291423

+0

@ user2291423 см. Мое обновление здесь .. Если у вас есть путаница, спросите меня –

+0

ok..let me check Pankaj :) – user2291423

0

Этот вид даты и времени работы легче с Joda-Time 2,3 библиотеки.

Если вам действительно нужна дата только без компонента времени, измените этот код, чтобы использовать LocalDate класс, а не DateTime.

// © 2013 Basil Bourque. This source code may be used freely forever by anyone taking full responsibility for doing so. 
// import org.joda.time.*; 
// import org.joda.time.format.*; 

DateTime today = new DateTime().withTimeAtStartOfDay(); 

// Monday 
DateTime monday = today.withDayOfWeek(DateTimeConstants.MONDAY).withTimeAtStartOfDay(); 
if (!(monday.isAfter(today))) { 
    // If monday is today or earlier, move forward to future. 
    monday = monday.plusWeeks(1); 
} 

// Sunday 
DateTime sunday = today.withDayOfWeek(DateTimeConstants.SUNDAY).withTimeAtStartOfDay(); 
if (!(sunday.isAfter(today))) { 
    // If sunday is today or earlier, move forward to future. 
    sunday = sunday.plusWeeks(1); 
} 

System.out.println("today: " + today); 
System.out.println("Monday: " + monday); 
System.out.println("Sunday: " + sunday); 

При запуске ...

today: 2013-12-08T00:00:00.000-08:00 
Monday: 2013-12-09T00:00:00.000-08:00 
Sunday: 2013-12-15T00:00:00.000-08:00