关于指定日期的获取

java使用Calendar类获得指定日期

   关于指定日期的获取,是根据指定日期和当前日期相差的天数,然后使用set方法设置Calendar.DAY_OF_MONTH的值。
    Calendar cal = Calendar.getInstance();
    cal.set(Calendar.DAY_OF_MONTH, cal.get(Calendar.DAY_OF_MONTH) - dayPlus);
    (dayPlus表示指定日期和当前日期相差的天数)
    不进行set,默认是获取系统时间,初步测试没有问题,可正确获得指定日期。
    *************************************************************************************************
    代码:
    // 获得当前日期
    public static String getDate() {
        Calendar cal = Calendar.getInstance();
        return getDate(cal);
    }

    // 获得日期
    private static String getDate(Calendar cal) {
        String v_strDate = "";
        int v_intYear = cal.get(Calendar.YEAR);
        int v_intMonth = cal.get(Calendar.MONTH) + 1;
        int v_intDAY = cal.get(Calendar.DAY_OF_MONTH);
        int v_intHOUR = cal.get(Calendar.HOUR_OF_DAY);
        int v_intMINUTE = cal.get(Calendar.MINUTE);
        int v_intSECOND = cal.get(Calendar.SECOND);
        
        if (v_intDAY < 10) {
            v_strDate = v_strDate + "0" + v_intDAY + "-";
        }else {
            v_strDate = v_strDate + v_intDAY + "-";
        }
        if (v_intMonth < 10) {
            v_strDate = v_strDate + "0" + v_intMonth + "-";
        }else {
            v_strDate = v_strDate + v_intMonth + "-";
        }
        v_strDate = v_strDate + v_intYear + " ";
        
        if (v_intHOUR < 10) {
            v_strDate = v_strDate + "0" + v_intHOUR + ":";
        }else {
            v_strDate = v_strDate + v_intHOUR + ":";
        }
        if (v_intMINUTE < 10) {
            v_strDate = v_strDate + "0" + v_intMINUTE + ":";
        } else {
            v_strDate = v_strDate + v_intMINUTE + ":";
        }
        if (v_intSECOND < 10) {
            v_strDate = v_strDate + "0" + v_intSECOND;
        } else {
            v_strDate = v_strDate + v_intSECOND;
        }
        cal = null;
        return v_strDate;
    }

    //获得当前日期与本周日相差的天数
    private static int getMondayPlus() {
        Calendar cd = Calendar.getInstance();
        // 获得今天是一周的第几天,星期日是第一天,星期二是第二天......
        int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK) - 1; // 因为按中国礼拜一作为第一天所以这里减1
        if (dayOfWeek == 1) {
            return 0;
        } else {
            return dayOfWeek - 1;
        }
    }

    //获得本周一的日期
    public static String getThisMondayDate() {
        Calendar cal = Calendar.getInstance();
        int mondayPlus = getMondayPlus();
        cal.set(Calendar.DAY_OF_MONTH, cal.get(Calendar.DAY_OF_MONTH)-mondayPlus);
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        return getDate(cal);
    }
    
    //获得本月1号的日期
    public static String getCurrentMonthBeginDate(){
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.DAY_OF_MONTH, 1);
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        return getDate(cal);
    }
    
    //获得上周一的日期
    public static String getLastMondayDate(){
        Calendar cal = Calendar.getInstance();
        int dayPlus = getMondayPlus()+7;
        cal.set(Calendar.DAY_OF_MONTH, cal.get(Calendar.DAY_OF_MONTH)-dayPlus);
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        return getDate(cal);
    }
    
    //获得上周日的日期
    public static String getLastSundayDate(){
        Calendar cal = Calendar.getInstance();
        int dayPlus = getMondayPlus()+1;
        cal.set(Calendar.DAY_OF_MONTH, cal.get(Calendar.DAY_OF_MONTH)-dayPlus);
        cal.set(Calendar.HOUR_OF_DAY, 23);
        cal.set(Calendar.MINUTE, 59);
        cal.set(Calendar.SECOND, 59);
        return getDate(cal);
    }
    
    //获得上月1号的日期
    public static String getLastMonthBeginDate(){
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.MONTH, cal.get(Calendar.MONTH)-1);
        cal.set(Calendar.DAY_OF_MONTH,1);
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        return getDate(cal);
    }
    
    //获得上个月最后一天的日期
    public static String getLastMonthEndDate(){
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.DAY_OF_MONTH, 0);
        cal.set(Calendar.HOUR_OF_DAY, 23);
        cal.set(Calendar.MINUTE, 59);
        cal.set(Calendar.SECOND, 59);
        return getDate(cal);
    }

    public static void main(String[] args) {
        System.out.println(getDate());
        System.out.println(getThisMondayDate());
        System.out.println(getCurrentMonthBeginDate());
        System.out.println(getLastMondayDate());
        System.out.println(getLastSundayDate());
        System.out.println(getLastMonthBeginDate());
        System.out.println(getLastMonthEndDate());
    }

转载于:https://www.cnblogs.com/isoftware/p/3921827.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258269.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nodejs的package.json依赖dependencies中 ^ 和 ~ 的区别

nodejs的package.json定义了一个模块&#xff0c;包括其依赖关系的一个简单的JSON文件&#xff0c;该文件可以包含多个不同的指令来告诉Node包管理器如何处理模块。 dependencies则表示此模块依赖的模块和版本&#xff0c;其中常常可以看到类似 ^1.2.0 或 ~1.2.0 这样的版本范围…

脚本命令_SAP HANA数据库备份命令脚本

需求场景&#xff1a;HANA数据库版本 2.044 &#xff0c; SYSTEMDB库1个&#xff0c;Tenant库有3个 PRD、POP、HAP需要用命令行备份。备份原理说明&#xff1a;1、脚本同hana studio 一样&#xff0c;用SYSTEM用户去备份所有的数据库。2、备份脚本工作在数据库管理员用户下&…

Spring 基于Java的Bean声明

Spring 基于Java的Bean声明 使用Configuration进行设置&#xff1b; Xml&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <beans xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xmlns"http://www.springframework.…

手机音频通道被占用_关于凯叔讲故事APP的音频导出下载

孩子喜欢听凯叔讲故事&#xff0c;起先是三国演义和博物学&#xff0c;在网上听了个开头后&#xff0c;毫不犹豫买了正版,心想着购买app可以下载音频&#xff0c;完了拷贝到其他播放器听。然而......然而......大失所望&#xff0c;美其名曰保护正版&#xff0c;可这么个玩意&a…

编译安装 apache 2.4.6

如果配置apr&#xff0c;需要预先安装apr 以下是安装apache 步骤: groupadd webuser useradd -g webuser webuser 下载apache2 下载链接&#xff1a;http://pan.baidu.com/s/1ntiGWvZ 配置 ./configure --prefix/server/apache2 \ --enable-mods-sharedmost \ --enable-so \ --…

CSS3中border-radius、box-shadow与gradient那点事儿

一、border-radius border-radius用于添加圆角边框&#xff0c;用处非常广泛。 1&#xff09;一个值&#xff0c;代表了四个角 .radius-one {/* Safari 3-4, iOS 1-3.2, Android 1.6- */-webkit-border-radius: 12px; /* Firefox 1-3.6 */-moz-border-radius: 12px; /* Opera 1…

编程 跳台阶_Java版剑指offer编程题第8题--跳台阶

跟learnjiawa一起每天一道算法编程题&#xff0c;既可以增强对常用API的熟悉能力&#xff0c;也能增强自己的编程能力和解决问题的能力。算法和数据结构&#xff0c;是基础中的基础&#xff0c;更是笔试的重中之重。不积硅步&#xff0c;无以至千里&#xff1b;不积小流&#x…

获取汉字的首字母(转)

转换 获取一个汉字的拼音首字母。 GB码两个字节分别减去160&#xff0c;转换成10进制码组合就可以得到区位码例如汉字“你”的GB码是0xC4/0xE3&#xff0c;分别减去0xA0&#xf…

$ionicPopup

转自&#xff1a;http://www.ionicframework.com/docs/api/service/%24ionicPopup/ Usage A few basic examples, see below for details about all of the options available. angular.module(mySuperApp, [ionic]) .controller(PopupCtrl,function($scope, $ionicPopup, $tim…

目标规划运筹学例题doc_运筹学之目标规划(胡运权版).doc

运筹学之目标规划(胡运权版).doc第七章 目标规划1 目标规划的提出线性规划问题是讨论一个给定的线性目标函数在一组线性约束条件下的最大值或最小值问题。对于一个实际问题&#xff0c;管理科学者根据管理层决策目标的要求&#xff0c;首先确定一个目标函数以衡量不同决策的优劣…

Deep Learning(深度学习) 学习笔记(四)

神经概率语言模型&#xff0c;内容分为三块&#xff1a;问题&#xff0c;模型与准则&#xff0c;实验结果。[此节内容未完待续...] 1&#xff0c;语言模型问题 语言模型问题就是给定一个语言词典包括v个单词&#xff0c;对一个字串做出二元推断&#xff0c;推断其是否符合该语言…

Java Virtual Machine

后续完善转载于:https://www.cnblogs.com/fight-tao/p/4849167.html

selenium 鼠标悬浮_处理Selenium3+python3定位鼠标悬停才显示的元素

先给大家介绍下Selenium3python3--如何定位鼠标悬停才显示的元素定位鼠标悬停才显示的元素&#xff0c;要引入新模块# coding:utf-8from selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainsdriver webdriver.Firefox()driver.get(&q…

JavaScript 运行机制

JavaScript 运行机制 阅读目录 一、为什么JavaScript是单线程&#xff1f;二、任务队列三、事件和回调函数四、Event Loop五、定时器六、Node.js的Event Loop七、关于setTimeout的测试一、为什么JavaScript是单线程&#xff1f; JavaScript语言是单线程&#xff0c;也就是说&am…

mysql 时间 本周 本月_mysql查询当天、本周、上周、本月、上月信息

今天select * from 表名 where to_days(时间字段名) to_days(now());昨天SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) – TO_DAYS( 时间字段名) < 17天SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) < date(时间字段名)近30天SELECT * FROM 表名 wher…

android自定义倒计时控件示例

这篇文章主要介绍了Android秒杀倒计时自定义TextView示例&#xff0c;大家参考使用吧 自定义TextView控件TimeTextView代码&#xff1a; 复制代码 代码如下:import android.content.Context;import android.content.res.TypedArray;import android.graphics.Paint;import andro…

Spring Cloud构建微服务架构:服务消费(Ribbon)【Dalston版】

通过上一篇《Spring Cloud构建微服务架构&#xff1a;服务消费&#xff08;基础&#xff09;》&#xff0c;我们已经学会如何通过LoadBalancerClient接口来获取某个服务的具体实例&#xff0c;并根据实例信息来发起服务接口消费请求。但是这样的做法需要我们手工的去编写服务选…

检测是否点击到精灵

需要给每个精灵设置tag.可以用枚举 bool GE::GamePass::ccTouchBegan( cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent ) { const int iButtonCount 2; const int iButtonTags[iButtonCount] { GamePass_btn_share, GamePass_btn_return }; for(int i 0; i < iButt…

从gitlab上拉代码_从gitlab上拉取代码并一键部署

一、gitlab安装GitLab是一个利用Ruby on Rails开发的开源应用程序&#xff0c;实现一个自托管的Git项目仓库&#xff0c;可通过Web界面进行访问公开的或者私人项目。GitLab拥有与Github类似的功能&#xff0c;能够浏览源代码&#xff0c;管理缺陷和注释。可以管理团队对仓库的访…

LPWA技术:发展物联网的最佳选择

物联网时代的物物相连将会使百亿以上物体连入网络&#xff0c;这对传统上的两种通信技术&#xff0c;即近距离无线接入和移动蜂窝网提出了更高的要求。事实上&#xff0c;目前&#xff0c;用于物联网发展的通信技术正在全球范围内开发&#xff0c;低功耗广域网通信技术(Low Pow…