热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

android日期减少一天,Android获得日期所在月的第一天,最后一天,星期几,昨天今天明天...

Android获得星期几,昨天今天明天,日期所在月的第一天和最后一天最近用到的一些时间控制,记录一下。明天的时间戳:long

Android  获得

星期几,昨天今天明天 ,日期所在月的第一天和最后一天

最近用到的一些时间控制,记录一下。

明天的时间戳:long nextDay = System.currentTimeMillis() +24 *60 *60 *1000L;//明天

/**

* 获取传入日期所在月的第一天

*/

public static DategetFirstDayDateOfMonth(final Date date) {

final Calendar cal = Calendar.getInstance();

cal.setTime(date);

final int last = cal.getActualMinimum(Calendar.DAY_OF_MONTH);

cal.set(Calendar.DAY_OF_MONTH, last);

return cal.getTime();

}

/**

* 获取传入日期所在月的最后一天

*/

public static DategetLastDayOfMonth(final Date date) {

final Calendar cal = Calendar.getInstance();

cal.setTime(date);

final int last = cal.getActualMaximum(Calendar.DAY_OF_MONTH);

cal.set(Calendar.DAY_OF_MONTH, last);

return cal.getTime();

}

/**

* 返回星期几

*/

public static StringgetWeekNameFromMillis(Long millis) {

String weekStr ="";

if (millis ==null || millis ==0) {

L.e("时间有错");

return weekStr;

}

int selectDate =getWeekValueFromMillis(millis);

switch (selectDate) {

case 1:

weekStr ="周日";

break;

case 2:

weekStr ="周一";

break;

case 3:

weekStr ="周二";

break;

case 4:

weekStr ="周三";

break;

case 5:

weekStr ="周四";

break;

case 6:

weekStr ="周五";

break;

case 7:

weekStr ="周六";

break;

default:

weekStr ="";

break;

}

return weekStr;

}

/**

* 昨天 今天 明天

*/

public static StringgetDayFromMillis(Long millis) {

String weekStr ="";

if (millis ==null || millis ==0) {

L.e("时间有错");

return weekStr;

}

int currentDate =getWeekValueFromMillis(System.currentTimeMillis());

int selectDate =getWeekValueFromMillis(millis);

int currentDay =getDayoFMonthFromMillis(System.currentTimeMillis());

int selectDay =getDayoFMonthFromMillis(millis);

if (bIsCurrentMonth(millis) && currentDay == (selectDay +1) && currentDate == (selectDate +1)) {

return "昨天";

}else if (bIsCurrentMonth(millis) && currentDay == selectDay && currentDate == selectDate) {

return "今天";

}else if (bIsCurrentMonth(millis) && currentDay == (selectDay -1) && currentDate == (selectDate -1)) {

return "明天";

}

return weekStr;

}

/**

* 必须是当前年份,不能跨年

*/

public static boolean bIsCurrentMonth(long millis) {

Calendar calendar = Calendar.getInstance(TimeUtils.getDefaultTimeZone(), TimeUtils.getDefaultLocale());

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

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

return year ==getYearValueOfMillis(millis) && current ==getMonthValueFromMillis(millis);

}

public static int getMonthValueFromMillis(long millis) {

Calendar calendar = Calendar.getInstance(TimeUtils.getDefaultTimeZone(), TimeUtils.getDefaultLocale());

calendar.setTimeInMillis(millis);

return calendar.get(Calendar.MONTH);

}

public static int getYearValueOfMillis(long millis) {

Calendar calendar = Calendar.getInstance(TimeUtils.getDefaultTimeZone(), TimeUtils.getDefaultLocale());

calendar.setTimeInMillis(millis);

return calendar.get(Calendar.YEAR);

}

public static int getWeekValueFromMillis(long millis) {

Calendar calendar = Calendar.getInstance(TimeUtils.getDefaultTimeZone(), TimeUtils.getDefaultLocale());

calendar.setTimeInMillis(millis);

return calendar.get(Calendar.DAY_OF_WEEK);

}

public static int getDayoFMonthFromMillis(long millis) {

Calendar calendar = Calendar.getInstance(TimeUtils.getDefaultTimeZone(), TimeUtils.getDefaultLocale());

calendar.setTimeInMillis(millis);

return calendar.get(Calendar.DAY_OF_MONTH);

}



推荐阅读
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 本文介绍了Java高并发程序设计中线程安全的概念与synchronized关键字的使用。通过一个计数器的例子,演示了多线程同时对变量进行累加操作时可能出现的问题。最终值会小于预期的原因是因为两个线程同时对变量进行写入时,其中一个线程的结果会覆盖另一个线程的结果。为了解决这个问题,可以使用synchronized关键字来保证线程安全。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
author-avatar
mobiledu2502926167
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有