Android 如何在日历中获取当前周天数

Android 如何在日历中获取当前周天数,android,Android,我正在使用这个示例代码,我只想在gridview中显示当前的月天数。我在下面描述了我的问题。请帮帮我。我只是想展示一下本周的情况 假设今天的日期是7月21日,星期三网格显示具有此值的单行 Sun Mon tues Wed Thurs Fri Sat 18 19 20 (21) 22 23 24 但是我的代码将只显示这个值 Sun Mon tues Wed Thurs Fri Sat 1 2 3 4 5 6

我正在使用这个示例代码,我只想在gridview中显示当前的月天数。我在下面描述了我的问题。请帮帮我。我只是想展示一下本周的情况

假设今天的日期是7月21日,星期三网格显示具有此值的单行

 Sun  Mon tues  Wed  Thurs  Fri  Sat
 18    19   20  (21)  22    23    24
但是我的代码将只显示这个值

 Sun  Mon tues  Wed  Thurs  Fri  Sat
 1    2   3      4     5     6    7
我将此代码更改为示例代码

 // Current Month Days
 for (int i = 1; i <= daysInMonth; i++) {
 Log.d(currentMonthName, String.valueOf(i) + " "
  + getMonthAsString(currentMonth) + " " + yy);
if (i == getCurrentDayOfMonth()) {
 list.add(String.valueOf(i) + "-BLUE" + "-"
   + getMonthAsString(currentMonth) + "-" + yy);
 } else {
 list.add(String.valueOf(i) + "-WHITE" + "-"
   + getMonthAsString(currentMonth) + "-" + yy);
 }
//当前月份天数

对于(inti=1;i我希望这就是你想要的

  • 将printMonth()重命名为printMonth\u old()
  • 复制并粘贴下面的printMonth代码
  • 用一行代码修改getView()方法
  • 在活动中创建3个变量,并修改onCreate以初始化它们
  • 试试看
  • 您需要做一些更改,例如单击“下一步”按钮提前一周,单击“上一步”按钮返回一周

    1) 在重命名您的实际printMonth后,复制并粘贴此代码

        private void printMonth(int mm, int yy)
        {
            Log.d(tag, "==> printMonth: mm: " + mm + " " + "yy: " + yy);
            int trailingSpaces = 0;
            int daysInPrevMonth = 0;
    
            int currentMonth = mm - 1;
            String currentMonthName = getMonthAsString(currentMonth);
            daysInMonth = getNumberOfDaysOfMonth(currentMonth);
    
            Log.d(tag, "Current Month: " + " " + currentMonthName + " having " + daysInMonth + " days.");
    
            GregorianCalendar cal = new GregorianCalendar(yy, currentMonth, getCurrentDayOfMonth());
            Log.d(tag, "Gregorian Calendar:= " + cal.getTime().toString());
    
            int currentWeekDay = cal.get(Calendar.DAY_OF_WEEK) - 1;
            trailingSpaces = currentWeekDay;
    
            Log.d(tag, "Week Day:" + currentWeekDay + " is " + getWeekDayAsString(currentWeekDay));
            Log.d(tag, "No. Trailing space to Add: " + trailingSpaces);
            Log.d(tag, "No. of Days in Previous Month: " + daysInPrevMonth);
    
            if (cal.isLeapYear(cal.get(Calendar.YEAR)))
                if (mm == 2) ++daysInMonth;
                else if (mm == 3)
                    ++daysInPrevMonth;
    
            // move at the begging of the week
            int i = getCurrentDayOfMonth();
            int j = currentWeekDay;
            while (i > 1 && j > 0)
            {
                i--;
                j--;
            }
            // print the week, starting at Sunday
            for (j = 0; i <= daysInMonth && j < 7; i++, j++)
            {
                Log.d(currentMonthName, String.valueOf(i) + " " + getMonthAsString(currentMonth) + " " + yy);
                // If it is the current date, printing in BLUE (Orange)
                if (i == actualDay && mm == actualMonth && yy == actualYear)
                {
                    list.add(String.valueOf(i) + "-BLUE" + "-" + getMonthAsString(currentMonth) + "-" + yy);
                }
                else
                {
                    list.add(String.valueOf(i) + "-WHITE" + "-" + getMonthAsString(currentMonth) + "-" + yy);
                }
            }
        }
    
    3) 在“活动”中添加以下行:

    public class MyCalendarActivity extends Activity implements OnClickListener
    {
        ....
        private int month, year;
        // add this line below
        private int actualYear, actualMonth, actualDay;
    
    并在onCreate()上添加以下行:

    public void onCreate(Bundle savedInstanceState)
    {
      ....
    
      month = _calendar.get(Calendar.MONTH) + 1;
      year = _calendar.get(Calendar.YEAR);
      // Add these 3 lines          
      actualYear = year;
      actualMonth = month;
      actualDay = _calendar.get(Calendar.DAY_OF_MONTH);
    

    有人帮我吗?当然可以,但是你能把你的代码格式化成可读的格式吗。阅读起来有点困难。请看示例链接我只想在GridView中显示当前一周的日期如何加载下一周和上一周你能告诉我这个想法吗
    public class MyCalendarActivity extends Activity implements OnClickListener
    {
        ....
        private int month, year;
        // add this line below
        private int actualYear, actualMonth, actualDay;
    
    public void onCreate(Bundle savedInstanceState)
    {
      ....
    
      month = _calendar.get(Calendar.MONTH) + 1;
      year = _calendar.get(Calendar.YEAR);
      // Add these 3 lines          
      actualYear = year;
      actualMonth = month;
      actualDay = _calendar.get(Calendar.DAY_OF_MONTH);