首页 > java基础--日期--练习集锦

java基础--日期--练习集锦

题目1 --日期

借助随机数,创建一个从1995.1.1 00:00:00 到 1995.12.31 23:59:59 之间的随机日期

package date;import java.util.Date;public class TestDate {public static void main(String[] args) {long second = 1000;long minute = 60*second;long hour = minute * 60;long day = hour*24;long year = day * 365;long year1995Start  = (1995-1970) * year;long leapDay = (1995-1970)/4*day; //每隔4年有一个润日year1995Start+=leapDay;long eightHour = hour*8; //8个小时的毫秒数,因为从0毫秒对应的是1970.1.1 08:00:00year1995Start-=eightHour;Date dStart = new Date(year1995Start);System.out.println("1995年第一天:"+dStart);long year1995End = year1995Start + year - 1;Date dEnd = new Date(year1995End);System.out.println("1995年最后一天:"+dEnd);long randomTime = (long) (Math.random()*(year-1) + year1995Start);Date dRandom = new Date(randomTime);System.out.println("1995年这一年中的一个随机时间:" + dRandom);}
}

笔记

SimpleDateFormat sdf =new SimpleDateFormat("yyyy/MM/dd HH:mm:ss" );

String str = "2016/1/5 12:12:12";

Date d = sdf.parse(str);

字符串对象有一个parse(str) 可以转成Date 对象

Date对象转字符串:

SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS" );

Date d= new Date();

String str = sdf.format(d);

题目2--日期格式化

准备一个长度是9的日期数组

使用1970年-2000年之间的随机日期初始化该数组

按照这些日期的时间进行升序排序

比如 1988-1-21 12:33:22 就会排在 1978-4-21 19:07:23 前面,因为它的时间更小,虽然日期更大

package date;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class TestDate {public static void main(String[] args) {int yearStart = 1970;int yearEnd = 2000;Date[] ds = new Date[9];for (int i = 0; i < ds.length; i++) {ds[i] = getRandomDate(yearStart, yearEnd);}System.out.println("得到的随机日期数组:");for (int i = 0; i < ds.length; i++) {System.out.print(toString(ds[i])+"	");if(2==i%3)System.out.println();}//选择法排序for (int j = 0; j < ds.length-1; j++) {for (int i = j+1; i < ds.length; i++) {String strTimeI = toString(ds[i],"HHmmss");String strTimeJ = toString(ds[j],"HHmmss");int lTimeI = Integer.parseInt(strTimeI);int lTimeJ = Integer.parseInt(strTimeJ);if( lTimeI

笔记:可以通过日历对象得到日期对象

//采用单例模式获取日历对象Calendar.getInstance();

Calendar c = Calendar.getInstance();

    //通过日历对象得到日期对象Date d = c.getTime();

日期对象

add方法,在原日期上增加年/月/日

set方法,直接设置年/月/日

题目3--Calendar

找出下个月的倒数第3天是哪天

package date;import java.text.SimpleDateFormat;
//
import java.util.Calendar;
import java.util.Date;public class TestDate {private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");public static void main(String[] args) {Calendar c = Calendar.getInstance();System.out.println("今天是:" + format( c.getTime()));//先翻到下下个月c.add(Calendar.MONTH,2);//设置到月初c.set(Calendar.DATE,1);//再往回翻3天c.add(Calendar.DATE,-3);Exception e;System.out.println("下个月倒数第三天是:" + format(c.getTime()));}private static String format(Date time) {return sdf.format(time);}
}

转载于:https://www.cnblogs.com/czy16/p/8963488.html

更多相关:

  • function getYearMonthList(startDate, endDate) {//返回月份的数组 如 ['2021/07','2021/08']var arr = [];var s = new Date(startDate).toLocaleString("zh-Hans-CN", {year: "numeric",...

  • 0.cal 2019  #输出日历并显示今天是哪一天 1.命令“date”,显示系统的当前日期和时间; 2.命令“date 040100002016”,屏幕显示新修改的系统时间;  #不太明白 3. 转载于:https://www.cnblogs.com/Formulate0303/p/11142997.html...

  • 一、Date类型的初始化 1、 Date(int year, int month, int date); 直接写入年份是得不到正确的结果的。 因为java中Date是从1900年开始算的,所以前面的第一个参数只要填入从1900年后过了多少年就是你想要得到的年份。 月需要减1,日可以直接插入。 这种方法用的比较少,常用的是第二种方法。...

  • 一.获取当前时间 1.1创建一个日期对象 NSDate *date = [NSDate date];NSLog(@"%@",date);   输出结果: 2016-07-01 17:31:02.410 OCString[907:402963] 2016-07-01 09:31:02 +0000 //因为时...

  • Gym - 102082Ghttps://vjudge.net/problem/2198225/origin对于数列中任意一个数,要么从最左边到它不递减,要么从最右边到到它不递减,为了满足这个条件,就要移动,而移动的最少步数就是逆序对数。所以这个数要么往左移动,要么往右移动,所以两个取最小就好了 #include

  • 雪花算法根据时间戳生成有序的 64 bit 的 Long 类型的唯一 ID 各 bit 含义: 1 bit: 符号位,0 是正数 1 是负数, ID 为正数,所以恒取 041 bit: 时间差,我们可以选择一个参考点,用它来计算与当前时间的时间差 (毫秒数),41 bit 存储时间差,足够使用 69 年10 bit: 机器码,能编...

  •   这是一篇很水的blog 扫雷 link 一道很水的dp,考虑上一上,这一行,与下一行是否有雷即可 #include #include #include #include using namespace std; inline long long read...

  • 题目链接:http://codeforces.com/problemset/problem/900/D 题意:   给定x,y,问你有多少个数列a满足gcd(a[i]) = x 且 ∑(a[i]) = y。   题解:   由于gcd(a[i]) = x,所以y一定是x的倍数,否则无解。   那么原题就等价于:问你有多少个数列a满足g...

  • P2429 制杖题 题目描述 求不大于 m 的、 质因数集与给定质数集有交集的自然数之和。 输入输出格式 输入格式:第一行二个整数 n,m。 第二行 n 个整数,表示质数集内的元素 p[i]。 输出格式:一个整数,表示答案,对 376544743 取模。 输入输出样例 输入样例#1:2 15 3 5 输出样例#1:60 说...

  • SQL获取当月天数的几种方法 原文:SQL获取当月天数的几种方法 日期直接减去int类型的数字 等于 DATEADD(DAY,- 数字,日期) 下面三种方法: 1,日期加一个月减去当前天数,相当于这个月最后一天的日期。然后获取天数。(注意,不能用这种方式:当前日期减去当前天数,再加一个月,新日期不一定是当前月的最后一天的日期...

  • 在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用 java.util 包中的 Date 类。这个类最主要的作用就是获取当前时间,我们来看下 Date 类的使用: 使用 Date 类的默认无参构造方法创建出的对象就代表当前时间,我们可以直接输出 Date 对象显示当前的时间,显示的结果如下: 其中, Wed 代表...

  • MySQL Date 函数 函数描述NOW()返回当前的日期和时间CURDATE()返回当前的日期CURTIME()返回当前的时间DATE()提取日期或日期/时间表达式的日期部分EXTRACT()返回日期/时间按的单独部分DATE_ADD()给日期添加指定的时间间隔DATE_SUB()从日期减去指定的时间间隔DATEDIFF()返回两...

  • 日期类NSDate,存储的是世界标准时(UTC),输出时需要根据时区转换为本地时间方法description字符串以GMT=0展示日期如:2011-11-16 07:02:25 +0000测试的北京时间:2011-11-16 15:02:25.324/))))((((/格式化日期类型,使用NSDateFormatter该格式类常用方法...

  •   2007-09-03 15:29:51|  分类: SQL2000数据库 |字号 订阅 1.一个月第一天的 Select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 2.本周的星期一 Select DATEADD(wk, DATEDIFF(wk,0,getdate()),...