現在の日付を持つ行のみを印刷する方法は?? 以下は、2次元配列を使用し、すべての値をテキストビューに出力する私のコードです。その配列をフィルタリングして、現在の月の日付を持つ配列のみを表示したいのですが、どうすればよいですか?? 以下は、Hoyahcalencer クラス オブジェクト a HoyahCalendar.a[i/7][i%7] に配列値を設定する関数 CalculateCalendar() です。
public void CalculateCalendar(int month_no, int week_no, int month_days){
int i, s;
//String[][] a = new String[6][7];
for (i=0;i<week_no;i++)
HoyahCalendar.a[i/7][i%7] = "";
for(i=week_no; i<week_no + month_days; i++){
s = i - week_no + 1;
HoyahCalendar.a[i/7][i%7] = String.valueOf(s);
}
for(i=week_no+month_days; i<42; i++)
HoyahCalendar.a[i/7][i%7] = "";
}
}
////////// below is complete source code////////////////////
public class HoyahCalendar extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViews();
setListeners();
getDate();
new ShowCalendar(mYear, mMonth);
showOnScreen();
}
private static int mYear;
private static int mMonth;
private static int mDay;
public static String[][] a = new String[6][7];
private TextView date_today;
private ImageButton last_month;
private ImageButton next_month;
private TextView e00;private TextView e01;private TextView e02;
private TextView e03;private TextView e04;private TextView e05;
private TextView e06;private TextView e10;private TextView e11;
private TextView e12;private TextView e13;private TextView e14;
private TextView e15;private TextView e16;private TextView e20;
private TextView e21;private TextView e22;private TextView e23;
private TextView e24;private TextView e25;private TextView e26;
private TextView e30;private TextView e31;private TextView e32;
private TextView e33;private TextView e34;private TextView e35;
private TextView e36;private TextView e40;private TextView e41;
private TextView e42;private TextView e43;private TextView e44;
private TextView e45;private TextView e46;private TextView e50;
private TextView e51;private TextView e52;private TextView e53;
private TextView e54;private TextView e55;private TextView e56;
protected static final int MENU_SELECT = Menu.FIRST;
protected static final int MENU_BACK = Menu.FIRST+1;
protected static final int MENU_QUIT = Menu.FIRST+3;
protected static final int MENU_ABOUT = Menu.FIRST+2;
private void findViews(){
date_today = (TextView)findViewById(R.id.date_today);
last_month = (ImageButton)findViewById(R.id.last_month);
next_month = (ImageButton)findViewById(R.id.next_month);
e00 = (TextView)findViewById(R.id.e00);
e01 = (TextView)findViewById(R.id.e01);
e02 = (TextView)findViewById(R.id.e02);
e03 = (TextView)findViewById(R.id.e03);
e04 = (TextView)findViewById(R.id.e04);
e05 = (TextView)findViewById(R.id.e05);
e06 = (TextView)findViewById(R.id.e06);
e10 = (TextView)findViewById(R.id.e10);
e11 = (TextView)findViewById(R.id.e11);
e12 = (TextView)findViewById(R.id.e12);
e13 = (TextView)findViewById(R.id.e13);
e14 = (TextView)findViewById(R.id.e14);
e15 = (TextView)findViewById(R.id.e15);
e16 = (TextView)findViewById(R.id.e16);
e20 = (TextView)findViewById(R.id.e20);
e21 = (TextView)findViewById(R.id.e21);
e22 = (TextView)findViewById(R.id.e22);
e23 = (TextView)findViewById(R.id.e23);
e24 = (TextView)findViewById(R.id.e24);
e25 = (TextView)findViewById(R.id.e25);
e26 = (TextView)findViewById(R.id.e26);
e30 = (TextView)findViewById(R.id.e30);
e31 = (TextView)findViewById(R.id.e31);
e32 = (TextView)findViewById(R.id.e32);
e33 = (TextView)findViewById(R.id.e33);
e34 = (TextView)findViewById(R.id.e34);
e35 = (TextView)findViewById(R.id.e35);
e36 = (TextView)findViewById(R.id.e36);
e40 = (TextView)findViewById(R.id.e40);
e41 = (TextView)findViewById(R.id.e41);
e42 = (TextView)findViewById(R.id.e42);
e43 = (TextView)findViewById(R.id.e43);
e44 = (TextView)findViewById(R.id.e44);
e45 = (TextView)findViewById(R.id.e45);
e46 = (TextView)findViewById(R.id.e46);
e50 = (TextView)findViewById(R.id.e50);
e51 = (TextView)findViewById(R.id.e51);
e52 = (TextView)findViewById(R.id.e52);
e53 = (TextView)findViewById(R.id.e53);
e54 = (TextView)findViewById(R.id.e54);
e55 = (TextView)findViewById(R.id.e55);
e56 = (TextView)findViewById(R.id.e56);
}
private void setListeners(){
last_month.setOnClickListener(lastMonth);
next_month.setOnClickListener(nextMonth);
}
//��һ��
private Button.OnClickListener lastMonth = new Button.OnClickListener() {
public void onClick(View v){
if(mMonth == 1){
mYear -= 1;
mMonth = 12;
new ShowCalendar(mYear, mMonth);
showOnScreen();
}else{
mMonth -= 1;
new ShowCalendar(mYear, mMonth);
showOnScreen();
}
}
};
//��һ��
private Button.OnClickListener nextMonth = new Button.OnClickListener() {
public void onClick(View v){
if(mMonth == 12){
mYear += 1;
mMonth = 1;
new ShowCalendar(mYear, mMonth);
showOnScreen();
}else{
mMonth += 1;
new ShowCalendar(mYear, mMonth);
showOnScreen();
}
}
};
//��ȡ��ǰ����
public void getDate(){
Calendar mCalendar = Calendar.getInstance();
mYear = mCalendar.get(Calendar.YEAR);
mMonth = mCalendar.get(Calendar.MONTH)+1;
mDay = mCalendar.get(Calendar.DAY_OF_MONTH);
}
public void showOnScreen(){
date_today.setText(mYear + "Years" + mMonth + "Month");
e00.setText(a[0][0]);e01.setText(""+a[0][1]); e02.setText(""+a[0] [2]);
e03.setText(""+a[0][3]); e04.setText(""+a[0][4]);e05.setText(""+a[0] [5]);
e06.setText(""+a[0][6]); e10.setText(""+a[1][0]);e11.setText(""+a[1][1]);
e12.setText(""+a[1][2]); e13.setText(""+a[1][3]);e14.setText(""+a[1][4]);
e15.setText(""+a[1][5]); e16.setText(""+a[1][6]);e20.setText(""+a[2][0]);
e21.setText(""+a[2][1]); e22.setText(""+a[2][2]);e23.setText(""+a[2][3]);
e24.setText(""+a[2][4]); e25.setText(""+a[2][5]);e26.setText(""+a[2][6]);
e30.setText(""+a[3][0]); e31.setText(""+a[3][1]);e32.setText(""+a[3][2]);
e33.setText(""+a[3][3]); e34.setText(""+a[3][4]);e35.setText(""+a[3][5]);
e36.setText(""+a[3][6]); e40.setText(""+a[4][0]);e41.setText(""+a[4][1]);
e42.setText(""+a[4][2]); e43.setText(""+a[4][3]);e44.setText(""+a[4][4]);
e45.setText(""+a[4][5]); e46.setText(""+a[4][6]);e50.setText(""+a[5][0]);
e51.setText(""+a[5][1]); e52.setText(""+a[5][2]);e53.setText(""+a[5][3]);
e54.setText(""+a[5][4]); e55.setText(""+a[5][5]);e56.setText(""+a[5][6]);
}
}
public class ShowCalendar {
private int mYear;
private int mMonth;
public ShowCalendar(int mYear, int mMonth){
this.mYear = mYear;
this.mMonth = mMonth;
calculateMonthFirstday();
}
public void calculateMonthFirstday(){
int month, first_day=0;
if((mYear%4==0 && mYear%100!=0)||(mYear%400==0))
month=1;
else
month=0;
int y, y12, c, c12, m, d;
y = mYear%100;
y12 = (mYear-1)%100; //only for January and February
c = mYear/100;
c12 = (mYear-1)/100;
m = mMonth;
d = 1;
switch(mMonth){
case 1: {first_day = y12 + y12/4 +c12/4 - 2*c12 + 26*(13 + 1)/10 + d - 1;break;}
case 2: {first_day = y12 + y12/4 +c12/4 - 2*c12 + 26*(14 + 1)/10 + d - 1;break;}
case 4: {first_day = y + y/4 +c/4 - 2*c + 26*(m + 1)/10 + d - 1;break;}
case 5: {first_day = y + y/4 +c/4 - 2*c + 26*(m + 1)/10 + d - 1;break;}
case 6: {first_day = y + y/4 +c/4 - 2*c + 26*(m + 1)/10 + d - 1;break;}
case 7: {first_day = y + y/4 +c/4 - 2*c + 26*(m + 1)/10 + d - 1;break;}
case 8: {first_day = y + y/4 +c/4 - 2*c + 26*(m + 1)/10 + d - 1;break;}
case 9: {first_day = y + y/4 +c/4 - 2*c + 26*(m + 1)/10 + d - 1;break;}
case 10: {first_day = y + y/4 +c/4 - 2*c + 26*(m + 1)/10 + d - 1;break;}
case 11: {first_day = y + y/4 +c/4 - 2*c + 26*(m + 1)/10 + d - 1;break;}
case 12: {first_day = y + y/4 +c/4 - 2*c + 26*(m + 1)/10 + d - 1;break;}
}
if(first_day<0)
first_day = 7 - (Math.abs(first_day))%7;//first_day每月第一天星期几
else
first_day = first_day%7;
switch(mMonth){
case 1: {CalculateCalendar(1,first_day,31);break;}
case 2: {CalculateCalendar(2,first_day,28+month);break;}
case 3: {CalculateCalendar(3,first_day,31);break;}
case 4: {CalculateCalendar(4,first_day,30);break;}
case 5: {CalculateCalendar(5,first_day,31);break;}
case 6: {CalculateCalendar(6,first_day,30);break;}
case 7: {CalculateCalendar(7,first_day,31);break;}
case 8: {CalculateCalendar(8,first_day,31);break;}
case 9: {CalculateCalendar(9,first_day,30);break;}
case 10: {CalculateCalendar(10,first_day,31);break;}
case 11: {CalculateCalendar(11,first_day,30);break;}
case 12: {CalculateCalendar(12,first_day,31);break;}
}
}
public void CalculateCalendar(int month_no, int week_no, int month_days){
int i, s;
//String[][] a = new String[6][7];
for (i=0;i<week_no;i++)
HoyahCalendar.a[i/7][i%7] = "";
for(i=week_no; i<week_no + month_days; i++){
s = i - week_no + 1;
HoyahCalendar.a[i/7][i%7] = String.valueOf(s);
}
for(i=week_no+month_days; i<42; i++)
HoyahCalendar.a[i/7][i%7] = "";
}
}