最简单的自定义日历控件

最近项目中需要一个日历控件,折腾来折腾去,看了不少源码。

感觉不是自己的写的源码总是受到限制,想美观一下,代码都要看半天(PS:本人处女座。。强迫症患者)

不纠结了自己动手做吧,先上图


主要就用了一个GridView

主要在于日历的计算代码,关键代码如下(PS:网上学习搬过来的)

//获得 当前 月份的  日期 
	public MCalendar[] getCalendar() {
		MCalendar a[] = new MCalendar[42];
		for (int i = 0; i < 42; i++) {
			a[i] = new MCalendar();
		}
		nowdate.set(curYear, curMonth - 1, 1);
		int week = nowdate.get(Calendar.DAY_OF_WEEK) - 1;// Calendar.DAY_OF_WEEK其实表示:一周中的第几天
		int day = 0;

		// 判断大月份
		if (curMonth == 1 || curMonth == 3 || curMonth == 5 || curMonth == 7
				|| curMonth == 8 || curMonth == 10 || curMonth == 12) {
			day = 31;
		}

		// 判断小月
		if (curMonth == 4 || curMonth == 6 || curMonth == 9 || curMonth == 11) {
			day = 30;
		}

		// 判断平年与闰年
		if (curMonth == 2) {
			if (((curYear % 4 == 0) && (curYear % 100 != 0))
					|| (curYear % 400 == 0)) {
				day = 29;
			}

			else {
				day = 28;
			}
		}

		for (int i = week, n = 1; i < week + day; i++) {
			a[i].setHAO(String.valueOf(n));
			n++;
		}
		return a;
	}

点击下载


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值