android 第26天 Calender 相关

2018-07-07  本文已影响28人  yezi1989

1、每月的第一天是周几?

/**
 * 返回当前月份1号位于周几
 *
 * @param year  年份
 * @param month 月份,传入系统获取的,不需要正常的
 * @return 日:1      一:2     二:3     三:4     四:5     五:6     六:7
 */
public static int getFirstDayWeek(int year, int month){
    Calendar calendar = Calendar.getInstance();
    calendar.set(year,month,1);
    return calendar.get(Calendar.DAY_OF_WEEK);
}
  1. 获取日历实例

    private Calendar c = Calendar.getInstance();
    

3、获取当前年份

c.get(Calendar.YEAR)
  1. 获取当前月份:特别注意一下,月份在Calendar中是从0开始的,也就是说1月份的值为0,因此需要加1才是现实中表示的月份

    c.get(Calendar.MONTH) + 1
    

5、今天是本月的第几天,两种写法

c.get(Calendar.DATE)
c.get(Calendar.DAY_OF_MONTH)

6、今天是本年的第几天

 c.get(Calendar.DAY_OF_YEAR)

7、今天在本月的第几周

c.get(Calendar.DAY_OF_WEEK_IN_MONTH)

8、获得今天是周几,这里不能直接将返回值当做周几,而应该与Calendar用于表示周几的常量搭配使用,返回值为3不代表今天是周三

 private void printDayOfWeek() {
    switch (c.get(Calendar.DAY_OF_WEEK)) {
        case Calendar.SUNDAY:
            Log.i("MainActivityFilter", "今天是周日");
            break;
        case Calendar.MONDAY:
            Log.i("MainActivityFilter", "今天是周一");
            break;
        case Calendar.TUESDAY:
            Log.i("MainActivityFilter", "今天是周二");
            break;
        case Calendar.WEDNESDAY:
            Log.i("MainActivityFilter", "今天是周三");
            break;
        case Calendar.THURSDAY:
            Log.i("MainActivityFilter", "今天是周四");
            break;
        case Calendar.FRIDAY:
            Log.i("MainActivityFilter", "今天是周五");
            break;
        case Calendar.SATURDAY:
            Log.i("MainActivityFilter", "今天是周六");
            break;
        default:
            break;
    }
}

9、获取现在是几点 几分 几秒,12小时制/24小时制

c.get(Calendar.HOUR)
c.get(Calendar.HOUR_OF_DAY)
c.get(Calendar.MINUTE)
c.get(Calendar.SECOND)
c.get(Calendar.MILLISECOND)

10、区分是上午还是下午

if (c.get(Calendar.AM_PM) == Calendar.AM) {
        Log.i("MainActivityFilter", "现在是上午");
    } else {
        Log.i("MainActivityFilter", "现在是下午");
}

11、获取格式化日期

  SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
  Log.i("MainActivityFilter", sdf.format(c.getTime()));

12、增加日期中的某个域的值


image.png
c.add(Calendar.DAY_OF_MONTH, 1);

加之前:2018年7月31日 加之后:2018年8月1日

13、比较两个日期是否相等


image.png
private Calendar c = Calendar.getInstance();
private Calendar d = Calendar.getInstance();
Log.i("MainActivityFilter", "c和d是否相等:" + c.equals(d));

14、比较两个日期哪个更靠后/前一些

private Calendar c = Calendar.getInstance();
private Calendar d = Calendar.getInstance();
d.add(Calendar.DAY_OF_MONTH, 1);
Log.i("MainActivityFilter", "d在c后面:" + d.after(c));
d.before(c);

15、清空某一个域并用这个域最小的值代替和清空所有的域然后全部用最小的值代替

c.clear(Calendar.MONTH);
d.clear();

16、比较两个Calendar哪个在前哪个在后的方法

image.png
 c.compareTo(d); // 返回0,1,-1

17、将当前Calendar对象转换为Date对象

image.png

18、为Calendar对象的域设置值的一些方法

image.png

19、将Date对象设置给Calendar对象

image.png
上一篇下一篇

猜你喜欢

热点阅读