android获取表头 颜色,android 设计日历表头的算法

释放双眼,带上耳机,听听看~!

1.主算法如下:

private String[] getArrText() {

int dayOfWeek = TimeUtil.getDayOfWeek();

int date = TimeUtil.getDateOfMonth();

int dayOfMonth = TimeUtil.getDayOfMonth(TimeUtil.getYear(), TimeUtil.getMonth());

int dayOfMonth_Last = TimeUtil.getDayOfMonth(TimeUtil.getYear(), TimeUtil.getMonth() - 1);

for (int i = 1; i < dayOfWeek; i++) {

if ((date - (dayOfWeek - i)) > 0) {

mArrWeekText[i - 1] += TimeUtil.getDayStr((date - (dayOfWeek - i)));

} else {

mArrWeekText[i - 1] += TimeUtil.getDayStr(dayOfMonth_Last - (dayOfWeek - i) + 1);

}

}

int startId = 1;

for (int i = dayOfWeek; i <= 7; i++) {

if ((date + (i - dayOfWeek)) > dayOfMonth) {

mArrWeekText[i - 1] += TimeUtil.getDayStr(startId);

startId++;

} else {

mArrWeekText[i - 1] += TimeUtil.getDayStr(date + (i - dayOfWeek));

}

}

return mArrWeekText;

}

2.时间工具类

public class TimeUtil {

public static String getHourStr(int hour) {

if (hour < 10) {

return "0" + hour;

} else {

return "" + hour;

}

}

public static String getMinStr(int min) {

if (min < 10) {

return "0" + min;

} else {

return "" + min;

}

}

public static String getDayStr(int day) {

if (day < 10) {

return "0" + day;

} else {

return "" + day;

}

}

/**

* 根据年月获取该月份的天数

*

* @return

*/

public static int getDayOfMonth(int year, int month) {

Calendar calendar = Calendar.getInstance();

calendar.set(Calendar.YEAR, year);

calendar.set(Calendar.MONTH, month - 1);

int dayOfMonth = calendar.getActualMaximum(Calendar.DATE);

return dayOfMonth;

}

/**

* 获取当天是星期几

*

* @return

*/

public static int getDayOfWeek() {

Calendar calendar = Calendar.getInstance();

int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);

switch (dayOfWeek) {

case 1:

dayOfWeek = 7;// 由于默认返回值1代表星期天

break;

default:

dayOfWeek -= 1;

break;

}

return dayOfWeek;

}

/**

* 获取当天的日期

*

* @return

*/

public static int getDateOfMonth() {

Calendar calendar = Calendar.getInstance();

int dateOfMonth = calendar.get(Calendar.DATE);

return dateOfMonth;

}

/**

* 获取当年年份

*

* @return

*/

public static int getYear() {

Calendar calendar = Calendar.getInstance();

int year = calendar.get(Calendar.YEAR);

return year;

}

/**

* 获取当月月份

*

* @return

*/

public static int getMonth() {

Calendar calendar = Calendar.getInstance();

int month = calendar.get(Calendar.MONTH);

return month + 1;

}

public boolean isToday(){

return true;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值