安卓万年历

public class Main3Activity extends AppCompatActivity {
private GridView record_gridView;
private DateAdapter dateAdapter;
private ImageView record_left;
private ImageView record_right;
private TextView record_title;
private int year;
private int month;
private String title;
private int[][] days = new int[6][7];

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main3);

    record_gridView=findViewById(R.id.record_gridView);
    record_gridView.setAdapter(dateAdapter);

    initData();
    initView();
    initEvent();
}

private void initEvent() {
    record_left=findViewById(R.id.record_left);
    record_right=findViewById(R.id.record_right);

}

private void initView() {
    record_gridView = (GridView) findViewById(R.id.record_gridView);
    days = DateUtils.getDayOfMonthFormat(2016, 8);
    dateAdapter = new DateAdapter(this, days, year, month);
    record_gridView.setAdapter(dateAdapter);
    record_gridView.setVerticalSpacing(60);
    record_gridView.setEnabled(true);

    record_left = (ImageView) findViewById(R.id.record_left);
    record_left.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            AlertDialog.Builder builder=new AlertDialog.Builder(Main3Activity.this);
            builder.setIcon(R.mipmap.r1);
            builder.setTitle("789456");
            builder.setMessage("741852963");
            builder.setPositiveButton("ok", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(Main3Activity.this, "点击ok", Toast.LENGTH_SHORT).show();
                }
            });
            builder.setNegativeButton("cencel", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(Main3Activity.this, "点击取消", Toast.LENGTH_SHORT).show();
                }
            });
            Dialog dialog=builder.create();
            dialog.show();
        }
    });
    record_right = (ImageView) findViewById(R.id.record_right);
    record_right.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            AlertDialog.Builder builder=new AlertDialog.Builder(Main3Activity.this);
            builder.setIcon(R.mipmap.z1);
            builder.setTitle("789456");
            builder.setMessage("741852963");
            builder.setPositiveButton("ok", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(Main3Activity.this, "点击ok", Toast.LENGTH_SHORT).show();
                }
            });
            builder.setNegativeButton("cencel", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(Main3Activity.this, "点击取消", Toast.LENGTH_SHORT).show();
                }
            });
            Dialog dialog=builder.create();
            dialog.show();
        }
    });
    record_title = (TextView) findViewById(R.id.record_title);


}

private void initData() {
    year=DateUtils.getYear();
    month=DateUtils.getMonth();
}
private int[][] nextMonth() {
    if (month == 12) {
        month = 1;
        year++;
    } else {
        month++;
    }
    days = DateUtils.getDayOfMonthFormat(year, month);
    return days;

}
private int[][] prevMonth(){
    if (month == 1) {
        month = 12;
        year--;
    } else {
        month--;
    }
    days = DateUtils.getDayOfMonthFormat(year, month);
    return days;
}
private void setTile() {
    title = year + "年" + month + "月";
    record_title.setText(title);
}
public void onClick(View view) {
    switch (view.getId()) {
        case R.id.record_left:
            days = prevMonth();
            dateAdapter = new DateAdapter(this, days, year, month);
            record_gridView.setAdapter(dateAdapter);
            dateAdapter.notifyDataSetChanged();
            setTile();
            break;
        case R.id.record_right:
            days = nextMonth();
            dateAdapter = new DateAdapter(this, days, year, month);
            record_gridView.setAdapter(dateAdapter);
            dateAdapter.notifyDataSetChanged();
            setTile();
            break;
    }

}

}
package com.example.administrator.zhoukao01application;

import java.time.Year;
import java.util.Calendar;

public class DateUtils {
public static int getYear(){
return Calendar.getInstance().get(Calendar.YEAR);

}
public static int getMonth() {
    return Calendar.getInstance().get(Calendar.MONTH) + 1;
}
public static int getCurrentDayOfMonth() {
    return Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
}
public static int getCurrentDayOfWeek() {
    return Calendar.getInstance().get(Calendar.DAY_OF_WEEK);
}
public static int getHour() {
    return Calendar.getInstance().get(Calendar.HOUR_OF_DAY);//二十四小时制
}
public static int getMinute() {
    return Calendar.getInstance().get(Calendar.MINUTE);
}
public static int getSecond() {
    return Calendar.getInstance().get(Calendar.SECOND);
}
public static int[][] getDayOfMonthFormat(int year, int month) {
    Calendar calendar = Calendar.getInstance();
    calendar.set(year, month - 1, 1);//设置时间为每月的第一天
    //设置日历格式数组,6行7列
    int days[][] = new int[6][7];
    //设置该月的第一天是周几
    int daysOfFirstWeek = calendar.get(Calendar.DAY_OF_WEEK);
    //设置本月有多少天
    int daysOfMonth = getDaysOfMonth(year, month);
    //设置上个月有多少天
    int daysOfLastMonth = getLastDaysOfMonth(year, month);
    int dayNum = 1;
    int nextDayNum = 1;
    //将日期格式填充数组
    for (int i = 0; i < days.length; i++) {
        for (int j = 0; j < days[i].length; j++) {
            if (i == 0 && j < daysOfFirstWeek - 1) {
                days[i][j] = daysOfLastMonth - daysOfFirstWeek + 2 + j;
            } else if (dayNum <= daysOfMonth) {
                days[i][j] = dayNum++;
            } else {
                days[i][j] = nextDayNum++;
            }
        }
    }
    return days;
}

private static int getLastDaysOfMonth(int year, int month) {
    int lastDaysOfMonth = 0;
    if (month == 1) {
        lastDaysOfMonth = getDaysOfMonth(year - 1, 12);
    } else {
        lastDaysOfMonth = getDaysOfMonth(year, month - 1);
    }
    return lastDaysOfMonth;
}




private static int getDaysOfMonth(int year, int month) {
    switch (month) {
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            return 31;
        case 2:
            if (isLeap(year)) {
                return 29;
            } else {
                return 28;
            }
        case 4:
        case 6:
        case 9:
        case 11:
            return 30;
    }
    return -1;
}
public static boolean isLeap(int year) {
    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
        return true;
    }
    return false;
}

}

package com.example.administrator.zhoukao01application;

import android.content.Context;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

public class DateAdapter extends BaseAdapter {
private int[] days = new int[42];
private Context context;
private int year;
private int month;

public DateAdapter(Context context, int[][] days, int year, int month) {
    this.context = context;
    int dayNum = 0;
    //将二维数组转化为一维数组,方便使用
    for (int i = 0; i < days.length; i++) {
        for (int j = 0; j < days[i].length; j++) {
            this.days[dayNum] = days[i][j];
            dayNum++;
        }
    }
    this.year = year;
    this.month = month;
}


@Override
public int getCount() {
    return days.length;
}

@Override
public Object getItem(int i) {
    return days[i];
}

@Override
public long getItemId(int i) {
    return i;
}

@Override
public View getView(int i, View view, ViewGroup parent) {
    ViewHolder viewHolder;
    if (view == null) {
        view = LayoutInflater.from(context).inflate(R.layout.item2, null);
        viewHolder = new ViewHolder();
        viewHolder.data_item = (TextView) view.findViewById(R.id.date_item);
        view.setTag(viewHolder);
    } else {
        viewHolder = (ViewHolder) view.getTag();
    }
    if (i<7&&days[i]>20){
        viewHolder.data_item.setTextColor(Color.rgb(204,204,204));
    }else if (i>20&&days[i]<15){
        viewHolder.data_item.setTextColor(Color.rgb(204, 204, 204));
    }
    viewHolder.data_item.setText(days[i] + "");

    return view;
}

class ViewHolder {
    TextView data_item;

}

}

在这里插入图片描述

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值