简体   繁体   中英

How to get the next month of CalendarView?

I am still trying to create a monthview with calendarView.

My problem is that I have no idea how I could switch the month of calendarView. I want to click a button and then the view shall display the next or last month. The view is alredy grounded, so you cant scroll through.

CalendarView cal = (CalendarView) findViewById(R.id.calendarMonthView);
cal.setEnabled(false);

My idea is to do it with following Code:

long  **dateOfLastMonth** = currentMonth - month; // pseudo code
CalendarView lastMonth = (CalendarView) findViewById(R.id.calendarMonthView);
lastMonth.setDate(**dateOfLastMonth**);

But I have no idea what value dateOfLastMonth should have.

Is that the right way? What value should dateOfLastMoth (no idea because it must be a long) have? Is there another way?

Try this:

Calendar cal = Calendar.getInstance(); // Calendar object, with time set to now
cal.add(Calendar.MONTH, -1); // subtract a month
long dateOfLastMonth = cal.getTimeInMillis(); // get the milliseconds since 01/01/1970

If you want the 1st of the month do this

cal.set(Calendar.DAY_OF_MONTH, 1);

I suggest to do that before subtracting a month, because I don't know what happens if today is the 31st of the month and the previous month doesn't have a 31st.

Edit: It wouldn't be a problem if it's the 31st, I just tried it and the Calendar just sets to the 30th of the previous month

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM