文档库 最新最全的文档下载
当前位置:文档库 › date命令获取昨天、明天或多天前后的日期

date命令获取昨天、明天或多天前后的日期

date命令获取昨天、明天或多天前后的日期
date命令获取昨天、明天或多天前后的日期

date命令获取昨天、明天或多天前后的日期

在实际操作中,一些脚本中会调用明天,或者昨天,或更多天前的日期,本文将叙述讲述用date命令实现时间的显示。在Linux系统中用man date -d 查询的参数说的比较模糊,以下举例进一步说明:

# man date

-d, --date=STRING

display time described by STRING, not ‘now’

查看明天日期

# date -d next-day +”%Y%m%d”

# date -d tomorrow +”%Y%m%d”

查看昨天日期

# date -d last-day +”%Y%m%d”

# date -d yesterday +”%Y%m%d”

查看上个月日期

# date -d last-month +”%Y%m%

查看下个月日期

date -d next-month +”%Y%m%

查看明年日期

# date -d next-year +”%Y”

获取昨天或多天前的日期

DATE=$(date +%Y%m%d --date ’2 days ago’)

date命令能用来显示或设定系统的日期和时间,在显示方面,使用者能设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下:

时间方面

?%:印出

?% %n:下一行

?%t:跳格

?%H:小时(00..23)

?%I:小时(01..12)

?%k:小时(0..23)

?%l:小时(1..12)

?%M:分钟(00..59)

?%p:显示本地AM 或PM

?%r:直接显示时间(12 小时制,格式为hh:mm:ss [AP]M)

?%s:从1970 年1 月1 日00:00:00 UTC 到目前为止的秒数%S:秒(00..61)

?%T:直接显示时间(24 小时制)

?%X:相当于%H:%M:%S

?%Z:显示时区

日期方面

?%a:星期几(Sun..Sat)

?%A:星期几(Sunday..Saturday)

?%b:月份(Jan..Dec)

?%B:月份(January..December)

?%c:直接显示日期和时间

?%d:日(01..31)

?%D:直接显示日期(mm/dd/yy)

?%h:同%b

?%j:一年中的第几天(001..366)

?%m:月份(01..12)

?%U:一年中的第几周(00..53)(以Sunday 为一周的第一天的情形)

?%w:一周中的第几天(0..6)

?%W:一年中的第几周(00..53)(以Monday 为一周的第一天的情形)?%x:直接显示日期(mm/dd/yy)

?%y:年份的最后两位数字(00.99)

?%Y:完整年份(0000..9999)

若是不以加号作为开头,则表示要设定时间,而时间格式为:MMDDhhmm[[CC]YY][.ss] 其中:

?MM 为月份

?DD 为日

?hh 为小时

?mm 为分钟

?CC 为年份前两位数字

?YY 为年份后两位数字

?ss 为秒数

选项:

?-d datestr:显示datestr 中所设定的时间(非系统时间)

?--help:显示辅助讯息

?-s datestr:将系统时间设为datestr 中所设定的时间

?-u:显示目前的格林威治时间

?--version:显示版本编号

例子:

?显示时间后跳行,再显示目前日期:date +”%T%n%D”

?显示月份和日数:date +”%B %d”

?显示日期和设定时间(12:34:56):date --date 12:34:56

?设置系统当前时间(12:34:56):date --s 12:34:56

注意:当你不希望出现无意义的0 时(比如说1999/03/07),则能在标记中插入- 符号,比如说date +%-H:%-M:%-S 会把时分秒中无意义的0 给去掉,像是原本的08:09:04 会变为8:9:4。另外,只有取得权限者(比如说root)才能设定系统时间。当你以root 身分更改了系统时间之后,请记得以clock -w 来将系统时间写入CMOS 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。

扩展功能

date 工具可以完成更多的工作,不仅仅只是打印出当前的系统日期。您可以使用它来得到给定的日期究竟是星期几,并得到相对于当前日期的相对日期。了解某一天是星期几。

GNU 对date 命令的另一个扩展是-d 选项,当您的桌上没有日历表时(UNIX 用户不需要日历表),该选项非常有用。使用这个功能强大的选项,通过将日期作为引号括起来的参数提供,您可以快速地查明一个特定的日期究竟是星期几:

# date -d "nov 22"

2011年11月22日星期二00:00:00 CST

在本示例中,您可以看到今年的11 月22 日是星期二。所以,假设在11月22日召开一个重大的会议,您可以立即了解到这一天是星期二,而这一天您将赶到驻地办公室。

获得相对日期

-d 选项还可以告诉您,相对于当前日期若干天的究竟是哪一天,从现在开始的若干天或若干星期以后,或者以前(过去)。通过将这个相对偏移使用引号括起来,作为-d 选项的参数,就可以完成这项任务。

例如,您需要了解两星期以后的日期。如果您处于Shell提示符处,那么可以迅速地得到答案:

# date -d ’2 weeks’

关于使用该命令,还有其他一些重要的方法。使用next/last指令,您可以得到以后的星期几是哪一天:

# date -d ’next monday’ (下周一的日期)

# date -d next-day +”%Y%m%d”(明天的日期)

或者:date -d tomorrow +”%Y%m%d”

# date -d last-day +”%Y%m%d”(昨天的日期)

或者:date -d yesterday +”%Y%m%d”

# date -d last-month +”%Y%m”(上个月是几月)

# date -d next-month +”%Y%m”(下个月是几月)

使用ago 指令,您可以得到过去的日期:

# date -d ’30 days ago’ (30天前的日期)

您可以使用负数以得到相反的日期:

# date -d ’dec 14 -2 weeks’ (相对:dec 14这个日期的两周前的日期)

# date -d ’-100 days’ (100天以前的日期)

# date -d ’50 days’(50天后的日期)

这个技巧非常有用,它可以根据将来的日期为自己设置提醒,可能是在脚本或Shell启动文件中,如下所示:

DAY=`date -d ’2 weeks’ +"%b %d"`

if test "`echo $DAY`" = "Aug 16"; then echo ’Product lau nch is now two weeks away!’; fi

Oracle的to_date函数

Oracle的to_date函数 日期格式参数含义说明 D一周中的星期几 DAY天的名字,使用空格填充到9个字符 DD月中的第几天 DDD年中的第几天 DY天的简写名 IW ISO标准的年中的第几周 IYYYISO标准的四位年份 YY四位年份 YYY,YY,Y年份的最后三位,两位,一位 HH小时,按12小时计 HH24小时,按24小时计 MI分 SS秒 MM月 Mon月份的简写注: 在不同的语言下显示出来的数据不同,在中文下显示为5月,在英文下显示为MAY Month月份的全名 W该月的第几个星期

WW年中的第几个星期 1.日期时间间隔操作 当前时间减去7分钟的时间 select sysdate,sysdate -interval ’7’ MINUTE from dual 当前时间减去7小时的时间 select sysdate -interval ’7’ hour from dual 当前时间减去7天的时间 select sysdate - interval ’7’ day from dual 当前时间减去7月的时间 select sysdate,sysdate -interval ’7’ month from dual 当前时间减去7年的时间 select sysdate,sysdate -interval ’7’ year from dual 时间间隔乘以一个数字 select sysdate,sysdate -8 *interval ’2’ hour from dual 2.日期到字符操作 select sysdate,to_char(sysdate,’y y-mm-dd hh24:mi: ss’) from dual select sysdate,to_char(sysdate,’yy-mm-dd hh: mi: ss’) from dual select sysdate,to_char(sysdate,’yy-ddd hh:

UNIX系统常用命令

UNIX系统常用命令 UNIX系统常用命令格式: command [flags] [argument1] [argument2] ... 其中flags以-开始,多个flags可用一个-连起来,如ls -l -a 与ls -la相同。 根据命令的不同,参数分为可选的或必须的;所有的命令从标准输入接受输入,输出结果显示在标准输出,而错误信息则显示在标准错误输出设备。可使用重定向功能对这些设备进行重定向。 命令在正常执行结果后返回一个0值,如果命令出错可未完全完成,则返回一个 非零值(在shell中可用变量$?查看). 在shell script中可用此返回值作为控制逻辑的一部分。 注:不同的UNIX版本的flags可能有所不同。 1、与用户相关的命令 1.1 login (在LINUX Redhat下此命令功能与Solaris/BSD不同,执行login会退出当前任务). login: Password: 相关文件: 在下面的这些文件中设定shell运行时必要的路径,终端类型,其他变量或特殊程序. $HOME/.profile (Bourne shell, sh, bash) $HOME/.cshrc (csh, tcsh) $HOME/.tcshrc (tcsh) /etc/passwd文件中列出每个用户的shell /etc/csh.cshrc /etc/csh.login /etc/profile (Bourne shell, bash) /etc/login (Bourne shell, bash) csh: /etc/csh.cshrc和$HOME/.cshrc每次执行都会读取, 而/etc/csh.login和$HOME/.login只有注册shell才执行 修改相应文件后使用 source .cshrc使能相关修改,如果修改了path则 还需使用rehash刷新可执行文件hash表。 tcsh: $HOME/.tcshrc, 没有些文件读取.cshrc sh: /etc/profile和$HOME/.profile注册shell bash: /etc/profile和$HOME/.bash_profile注册shell读取 .bashrc交互式非注册shell才读取。

JAVA中获取当前时间

Java中获得当前时间的方法 2008年06月16日星期一下午 10:06 有两种方法: 方法一:用java.util.Date类来实现,并结合java.text.DateFormat类来实现时间的格式化,看下面代码: import java.util.*; import java.text.*; //以下默认时间日期显示方式都是汉语语言方式 //一般语言就默认汉语就可以了,时间日期的格式默认为MEDIUM风格,比如:2008-6-16 20:54:53 //以下显示的日期时间都是再Date类的基础上的来的,还可以利用Calendar类来实现见类TestDate2.java public class TestDate { public static void main(String[] args) { Date now = new Date(); Calendar cal = Calendar.getInstance(); DateFormat d1 = DateFormat.getDateInstance(); //默认语言(汉语)下的默认风格(MEDIUM风格,比如:2008-6-16 20:54:53) String str1 = d1.format(now); DateFormat d2 = DateFormat.getDateTimeInstance(); String str2 = d2.format(now); DateFormat d3 = DateFormat.getTimeInstance(); String str3 = d3.format(now); DateFormat d4 = DateFormat.getInstance(); //使用SHORT风格显示日期和时间 String str4 = d4.format(now); DateFormat d5 = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL); //显示日期,周,时间(精确到秒) String str5 = d5.format(now); DateFormat d6 = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG); //显示日期。时间(精确到秒) String str6 = d6.format(now); DateFormat d7 = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT); //显示日期,时间(精确到分) String str7 = d7.format(now); DateFormat d8 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM);

linux data 命令的使用

linux data 命令的使用,脚本必备2011-08-19 09:56:52 分类:LINUX 源于对 rac 节点时间的同步,想对比时间服务器,来更快地设置它的准确时间,一直记得 date 指令有一个功能就是能够进行时间的计算,即在当前时间上进行一些时间单位的加减,记录如下: 首先讲述一下date指令的格式: 使用权限 : 所有使用者 使用方式 : date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]] 说明 : date 能用来显示或设定系统的日期和时间,在显示方面,使用者能设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下 : 时间方面 : % : 印出 % %n : 下一行 %t : 跳格 %H : 小时(00..23) %I : 小时(01..12) %k : 小时(0..23) %l : 小时(1..12) %M : 分钟(00..59) %p : 显示本地 AM 或 PM %r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M) %s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数 %S : 秒(00..61) %T : 直接显示时间 (24 小时制) %X : 相当于 %H:%M:%S %Z : 显示时区 日期方面 : %a : 星期几 (Sun..Sat) %A : 星期几 (Sunday..Saturday) %b : 月份 (Jan..Dec) %B : 月份 (January..December) %c : 直接显示日期和时间 %d : 日 (01..31)

基于java Web 的在线拍卖系统

华北科技学院 课程设计说明书 技能训练类(三) 学号:201207034102 班级: 信管B121 姓名:何欢 设计题目:_____在线拍卖系统________________ 设计地点:____基础五_______________________ 设计时间: 2015.3.10 至2015.4.17 成绩评定: 1、工作量: A(),B(),C(),D(),F( ) 2、难易度:A(),B(),C(),D(),F( ) 3、答辩情况: 基本操作:A(),B(),C(),D(),F( ) 代码理解:A(),B(),C(),D(),F( ) 4、报告规范度:A(),B(),C(),D(),F( ) 5、学习态度:A(),B(),C(),D(),F( ) 总评成绩:_________________________________ 指导教师:_________________________________

1、课程设计的目的 技能训练的内容围绕一个信息管理系统的实际开发过程进行组织,重点在于程序设计开发部分。信息管理系统的题目由教师指定或学生自行拟定,学生根据教师提出的系统在应用环境、系统规模、数据量、业务流程等方面的要求,进行需求分析、数据库设计、数据库实施、程序开发和测试,最终完成系统。 技能训练的目的和要求: (1)使学生巩固和加强《java基础》与《》课程的理论知识。 (2)使学生掌握程序设计开发的步骤。 (3)使学生掌握model2以上的开发系统的方法。 (4)使学生掌握使用数据库管理信息数据的方法。 (5)使学生掌握使用JA V A等程序设计语言连接和操作数据库的方法。 (6)使学生掌握调试程序的基本方法及上机操作方法。 (7)使学生初步掌握开发一个小型信息管理系统的基本步骤,引导学生根据实际业务流程和需求进行系统分析与设计,并建立需要的数据库,最后通过编写代码和调试完成系统。 2、软件需求分析和总体设计 2.1软件功能 拍卖系统是一个在线系统,系统设计为B/S模式,用户在浏览器请求服务端的资源。包含的功能有: ①查看竟得物品 ②浏览流拍物品 ③管理种类 ④管理物品 ⑤浏览拍卖物品 ⑥查看自己的竞标 功能模块框图下图所示(图2-1-1):

Java课程设计飞机航班管理系统

一.引言 1.1项目的名称 飞机航班信息管理系统 1.2项目背景和目标 飞机航班信息管理系统主要能够查询飞机的航班情况,飞行线路,票价,折扣 等等情况,并能够在数据库中更新维护飞机航班的信息,对飞机航班数据库进 行管理,如航班的增加,删除和修改等。我们的目标就是为该系统提供后台连 接数据库程序设计以及前台用户界面设计。 1.3项目的可行性研究 设计此系统需要java面向对象编程基础,数据库应用知识以及功能分析。根据目前所开设的课程,学生已经具备这样的知识,有能力综合java编程知识和数据库应用知识做出一个这样的飞机航班信息管理系统。 二、需求分析 2.1系统概述 此系统提供给系统管理员和用户。系统管理员登陆后可以对飞机航班信息进行管理,如:添加飞机航班信息,删除飞机航班信息,修改飞机航班属性。用户登陆后能进行飞机航班信息查询,订票以及退订。 2.2系统运行环境 Java运行在eclipse软件上,数据库用mysql数据库 2.3功能需求描述 用户选择相关的服务项目可以查看相关航班基本信息,并且可以根据自己需求选择相应服务,系统的信息更新时,相关的信息经过相应处理后,会存入到飞机航班数据库中的航班信息记录表中;系统管理员根据航空公司实际情况可以更新航班信息,并通过修改信息处理后被保存到飞机航班表中。 三、系统设计 开发与设计的总体思想 飞机航班信息管理系统主要分为用户和系统管理员2类,因此也将该系统分为2个相应的大的功能模块。 用户可以通过服务项目选择查询相关航班情况,进行订票,退订等服务项目。系统会将数据库中相应信息反馈给顾客。 系统管理员负责管系统信息的及时更新,可以根据航空公司航班的具体的情况更新数据库。 系统模块结构图

java获取当前时间

有两种方法: 方法一:用java.util.Date类来实现,并结合java.text.DateFormat类来实现时间的格式化,看下面代码: import java.util.*; import java.text.*; //以下默认时间日期显示方式都是汉语语言方式 //一般语言就默认汉语就可以了,时间日期的格式默认为MEDIUM风格,比如:2008-6-16 20:54:53 //以下显示的日期时间都是再Date类的基础上的来的,还可以利用Calendar类来实现见类TestDate2.java public class TestDate { public static void main(String[] args) { Date now = new Date(); Calendar cal = Calendar.getInstance(); DateFormat d1 = DateFormat.getDateInstance(); //默认语言(汉语)下的默认风格(MEDIUM风格,比如:2008-6-16 20:54:53) String str1 = d1.format(now); DateFormat d2 = DateFormat.getDateTimeInstance(); String str2 = d2.format(now); DateFormat d3 = DateFormat.getTimeInstance(); String str3 = d3.format(now); DateFormat d4 = DateFormat.getInstance(); //使用SHORT风格显示日期和时间 String str4 = d4.format(now); DateFormat d5 = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL); //显示日期,周,时间(精确到秒) String str5 = d5.format(now); DateFormat d6 = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG); //显示日期。时间(精确到秒) String str6 = d6.format(now); DateFormat d7 = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT); //显示日期,时间(精确到分) String str7 = d7.format(now);

DATE 函数

技术细节 DATE函数返回表示特定的日期序列号。 语法︰DATE(year,month,day) DATE 函数语法具有下列参数: ?年份必需。年参数的值可以包括一到四位数字。Excel 将解释年参数根据您的计算机使用的日期系统。默认情况下,Microsoft Excel for Windows 使用1900年日期系统,这意味着1900 年 1 月 1 日的第一个日期。 提示:使用四位数年份参数以防止不需要的结果。例如,"07"意味着"1907"或"2007"。四位数年份防止混淆。 o如果year介于0(零)到1899 之间(包含这两个值),则Excel 会将该值与1900 相加来计算年份。例如,DATE(108,1,2)返回2008 年1 月2 日(1900+108)。 o如果year介于1900 到9999 之间(包含这两个值),则Excel 将使用该数值作为年份。例如,DATE(2008,1,2)将返回2008 年1 月 2 日。 o如果year小于0 或大于等于10000,则Excel 返回错误值#NUM!。 ?月必需。一个正整数或负整数,表示一年中从1 月至12 月(一月到十二月)的各个月。o如果month大于12,则month会将该月份数与指定年中的第一个月相加。例如,DATE(2008,14,2)返回代表2009 年 2 月2 日的序列数。 o如果month小于1,month则从指定年份的一月份开始递减该月份数,然后再加上1 个月。例如,DATE(2008,-3,2)返回代表2007 年9 月2 日的序列号。 ?日必需。一个正整数或负整数,表示一月中从1 日到31 日的各天。 o如果day大于月中指定的天数,则day会将天数与该月中的第一天相加。例如,DATE(2008,1,35)返回代表2008 年 2 月4 日的序列数。 o如果day小于1,则day从指定月份的第一天开始递减该天数,然后再加上1 天。例如,DATE(2008,1,-15)返回代表2007 年12 月16 日的序列号。 注意: Excel 将日期存储为序列号,以便可以在计算中使用它们。1900 年 1 月 1 日是序列号1,和2008 年1 月 1 日是序列号39448,因为它是39,447 1900 年1 月1 日的天数。 您将需要更改的数字格式(单元格格式)以显示正确的日期。

linux下的时间转换函数

linux下的时间函数 我们在编程中可能会经常用到时间,比如取得系统的时间(获取系统的年、月、日、时、分、秒,星期等),或者是隔一段时间去做某事,那么我们就用到一些时间函数。 linux下存储时间常见的有两种存储方式,一个是从1970年到现在经过了多少秒,一个是用一个结构来分别存储年月日时分秒的。 time_t 这种类型就是用来存储从1970年到现在经过了多少秒,要想更精确一点,可以用结构struct timeval,它精确到微妙。 struct timeval { long tv_sec; /*秒*/ long tv_usec; /*微秒*/ }; 而直接存储年月日的是一个结构: struct tm { int tm_sec; /*秒,正常范围0-59,但允许至61*/ int tm_min; /*分钟,0-59*/ int tm_hour; /*小时,0-23*/ int tm_mday; /*日,即一个月中的第几天,1-31*/ int tm_mon; /*月,从一月算起,0-11*/ int tm_year; /*年,从1900至今已经多少年*/ int tm_wday; /*星期,一周中的第几天,从星期日算起,0-6*/ int tm_yday; /*从今年1月1日到目前的天数,范围0-365*/ int tm_isdst; /*日光节约时间的旗标*/ };

需要特别注意的是,年份是从1900年起至今多少年,而不是直接存储如2008年,月份从0开始的,0表示一月,星期也是从0开始的,0表示星期日,1表示星期一。 下面介绍一下我们常用的时间函数: #include char *asctime(const struct tm* timeptr); 将结构中的信息转换为真实世界的时间,以字符串的形式显示 char *ctime(const time_t *timep); 将timep转换为真是世界的时间,以字符串显示,它和asctime不同就在于传入的参数形式不一样 double difftime(time_t time1, time_t time2); 返回两个时间相差的秒数 int gettimeofday(struct timeval *tv, struct timezone *tz); 返回当前距离1970年的秒数和微妙数,后面的tz是时区,一般不用 struct tm* gmtime(const time_t *timep); 将time_t表示的时间转换为没有经过时区转换的UTC时间,是一个struct tm结构指针 stuct tm* localtime(const time_t *timep); 和gmtime类似,但是它是经过时区转换的时间。 time_t mktime(struct tm* timeptr); 将struct tm结构的时间转换为从1970年至今的秒数 time_t time(time_t *t); 取得从1970年1月1日至今的秒数。 上面是简单的介绍,下面通过实战来看看这些函数的用法: 下载: gettime1.c 1. /*gettime1.c*/ 2. #include 3. int main()

java获得当前服务器的操作系统

import java.util.Properties; public class Test{ public static void main (String args[]){ Properties props=System.getProperties(); //系统属性 System.out.println("Java的运行环境版本:"+props.getProperty("java.version")); System.out.println("Java的运行环境供应商:"+props.getProperty("java.vendor")); System.out.println("Java供应商的URL:"+props.getProperty("java.vendor.url")); System.out.println("Java的安装路径:"+props.getProperty("java.home")); System.out.println("Java的虚拟机规范版本:"+props.getProperty("java.vm.specification.version")); System.out.println("Java的虚拟机规范供应商:"+props.getProperty("java.vm.specification.vendor")); System.out.println("Java的虚拟机规范名称:"+props.getProperty("https://www.wendangku.net/doc/7b18824858.html,")); System.out.println("Java的虚拟机实现版本:"+props.getProperty("java.vm.version")); System.out.println("Java的虚拟机实现供应商:"+props.getProperty("java.vm.vendor")); System.out.println("Java的虚拟机实现名称:"+props.getProperty("https://www.wendangku.net/doc/7b18824858.html,")); System.out.println("Java运行时环境规范版本:"+props.getProperty("java.specification.version")); System.out.println("Java运行时环境规范供应商:"+props.getProperty("java.specification.vender")); System.out.println("Java运行时环境规范名称:"+props.getProperty("https://www.wendangku.net/doc/7b18824858.html,"));

Java中获取比毫秒更精确的时间

] java中获取比毫秒更为精确的时间 (2012-07-03 11:54:33) 转载▼ 分类:实践经验 标签: 杂谈 from: https://www.wendangku.net/doc/7b18824858.html,/paul_lh/article/details/6419982 关键词:java 毫秒微秒纳秒System.currentTimeMillis() 误差 在对新写的超快xml解析器和xpath引擎进行效率测试时,为获取执行时间,开始也没多想就用了System.currentTimeMillis() 来做的。由此碰到一个极其诡异的问题,同样的代码循环执行数次,分析每一次的执行时间,发现一大部分执行时间为小于1毫秒,但其间也发现有相当一部分的执行时间有非常大的跳跃,而且时间都近似16毫秒左右。这个1毫秒和16毫秒结果,以计算机的运行速度看,差距是惊人的,必须找出其原因。 根据经验,在16毫秒时间内,cpu可以运算的指令数量是相当惊人的,所以可以基本断定这16ms的差距,应当不是cpu在执行指令,另外因为测试过程中gc输出也已经打开,未见gc发生,所以怀疑可能是发生了什么io阻塞,比如文件读写、加载类库、或者什么网络操作等,由于笔者测试的系统的环境比较复杂,其间有用到ehCache,数据库操作等,排查起来非常不容易。 在困扰了好一阵之后,忽然想到可能计时系统有误差,这才翻回来查了下 System.currentTimeMillis() 的文档,原来这个方法调用了个native方法,获取的时间精度会依赖于操作系统的实现机制。奶奶的! 既然不准,就看看有没更准的方法,在jdk5源码中,挨着System.currentTimeMillis() 定义就是System.nanoTime() 方法,靠,一下来了个精准1000000倍的取纳秒的方法,不过看

nextdate函数

#include int check(int y,int m,int d) { if (d<1||d>31) { return 0; } else if (m<1||m>12) { return 0; } else if (y<1900||y>2100) { return 0; } return 1; } int a(int y) { return(y%4||y%100&&!(y%400)); } //30天 int b(int m ) { return (m==4||m==6||m==9||m==11); } //31天 int c(int m) { return (m==1||m==3||m==5||m==7||m==8||m==10||m==12); } int nextdate() { int year,month,day; printf("Year="); scanf("%d",&year);

printf("Month="); scanf("%d",&month); printf("Day="); scanf("%d",&day); if (check(year,month,day)) { if ((day==28&&month==2&&!a(year))||(day==29&&month==2&&a(year))) { day=1; month=3; } else if (day==30&&b(month)||day==31&&c(month)) { day=1; month++; } else day++; if (month>12) { month=1; ++year; } printf("Next date:%d-%d-%d\n",year,month,day); } else printf("无T效?ì输o?入¨?日¨?期¨2\n"); return 0; } void main() { int i=1; while(i) {printf("开a始o?计?算?:\n"); if(i==1) { nextdate(); } }

unixdate命令

Linux/UNIX的date命令 技术日志2010-02-26 17:08:43 阅读830 评论0 字号:大中小订阅 使用方法: date +格式 date命令的功能是显示和设置系统日期和时间。 该命令的一般格式为: date [选项] 显示时间格式(以+开头,后面接格式) date 设置时间格式 命令中各选项的含义分别为: -d datestr, --date datestr 显示由datestr描述的日期 -s datestr, --set datestr 设置datestr 描述的日期 -u, --universal 显示或设置通用时间 时间域 % H 小时(00..23) % I 小时(01..12) % k 小时(0..23) % l 小时(1..12) % M 分(00..59) % p 显示出AM或PM % r 时间(hh:mm:ss AM或PM),12小时 % s 从1970年1月1日00:00:00到目前经历的秒数 % S 秒(00..59) % T 时间(24小时制)(hh:mm:ss) % X 显示时间的格式(%H:%M:%S) % Z 时区日期域 % a 星期几的简称( Sun..Sat) % A 星期几的全称( Sunday..Saturday) % b 月的简称(Jan..Dec) % B 月的全称(January..December) % c 日期和时间( Mon Nov 8 14:12:46 CST 1999)

% d 一个月的第几天(01..31) % D 日期(mm/dd/yy) % h 和%b选项相同 % j 一年的第几天(001..366) % m 月(01..12) % w 一个星期的第几天(0代表星期天) % W 一年的第几个星期(00..53,星期一为第一天) % x 显示日期的格式(mm/dd/yy) % y 年的最后两个数字( 1999则是99) % Y 年(例如:1970,1996等) 注意:只有超级用户才有权限使用date命令设置时间,一般用户只能使用date命令显示时间。

操作系统时间片轮转RR进程调度算法java版

实验二间片轮转RR 进程调度算法 1、实验目的通过这次实验,加深对进程概念的理解,进一步掌握进程状态 的转变、进程调度的策略及对系统性能的评价方法。 2、试验内容 问题描述:设计程序模拟进程的时间片轮转RR调度过程。假设有n 个进程分别在T1, ?,T n 时刻到达系统,它们需要的服务时间分别为 S1, ?,n S。分别利用不同的时间片大小q,采用时间片轮转RR进程调度算法进行调度,计算每个进程的完成时间、周转时间和带权周转时间,并且统计n个进程的平均周转时间和平均带权周转时间。 3、程序要求: 1)进程个数n;每个进程的到达时间T1, ?,T n 和服务时间S1, ?,n S;输入时间片大小q。 2)要求时间片轮转法RR调度进程运行,计算每个进程的周转时间和带权周转时间,并且计算所有进程的平均周转时间和带权平均周转时间; 3)输出:要求模拟整个调度过程,输出每个时刻的进程运行状态,如“时刻3:进程 B 开始运行”等等; 4)输出:要求输出计算出来的每个进程的周转时间、带权周转时间、所有进程的平均周转时间以及带权平均周转时间。 4、需求分析 (1)输入的形式和输入值的范围 时间片真实进程数各进程的到达时间各进程的服务时间

(2)输出的形式模拟整个调度过程、周转时间、带权周转时间、所有进程的平均周转时间以及带权平均周转时间。 (3)测试用例 由于自己自编写代码方面与他人有一定的差距,因此在做实验的过程中我在网上搜了很多相关的资料,了解实现该算法的原理及各部分实现的代码,同时参考了几个别人写好的源代码,然后自己在理解的基础上不断的根据要求修改写程序,不过其中碰见的很多的问题。我已经自己调了好多错误,在一遍遍的调试和修改中,发现自己的经验在快速增长,这个感觉真的很不错。然而,实验的运行结果还不是 很完美,每个进程在最后一个时间片的运行过程中,进程列表的更新总是修改错误。不过在在本次试验中学到了不少东西,一点点的在进 6、测试结果 输入时间片,进程数,进程到达时间,服务时间

Java取日期的所有时间点可根据年月日

package com.util; import java.text.DateFormat; import java.text.ParseException; import java.text.ParsePosition; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; public class TimeUtil { //用来全局控制上一周,本周,下一周的周数变化 private int weeks = 0; private int MaxDate;//一月最大天数 private int MaxYear;//一年最大天数 /** * @param args */ public static void main(String[] args) { TimeUtil tt = new TimeUtil(); // System.out.println("获取当天日期:"+tt.getNowTime("yyyy-MM-dd")); // System.out.println("获取本周一日期:"+tt.getMondayOFWeek()); // System.out.println("获取本周日的日期~:"+tt.getCurrentWeekday()); // System.out.println("获取上周一日期:"+tt.getPreviousWeekday()); // System.out.println("获取上周日日期:"+tt.getPreviousWeekSunday()); // System.out.println("获取下周一日期:"+tt.getNextMonday()); // System.out.println("获取下周日日期:"+tt.getNextSunday()); // System.out.println("获得相应周的周六的日期:"+tt.getNowTime("yyyy-MM-dd")); // System.out.println("获取本月第一天日期:"+tt.getFirstDayOfMonth()); // System.out.println("获取本月最后一天日期:"+tt.getDefaultDay()); // System.out.println("获取上月第一天日期:"+tt.getPreviousMonthFirst()); // System.out.println("获取上月最后一天的日期:"+tt.getPreviousMonthEnd()); // System.out.println("获取下月第一天日期:"+tt.getNextMonthFirst()); // System.out.println("获取下月最后一天日期:"+tt.getNextMonthEnd()); // System.out.println("获取本年的第一天日期:"+tt.getCurrentYearFirst()); DateFormat fmt =new SimpleDateFormat("yyyy-MM-dd"); Date date = null; try { date = fmt.parse("2008-02-21"); } catch (ParseException e) {

PHP中的Date()函数详细讲解

PHP中的Date()函数详细讲解 1,年-月-日echo date('Y-m-j');2007-02-6 echo date('y-n-j');07-2-6 大写Y表示年四位数字,而小写y表示年的两位数字;小写m表示月份的数字(带前导),而小写n则表示不带前导的月份数字。 echo date('Y-M-j');2007-Feb-6 echo date('Y-m-d');2007-02-06 大写M表示月份的3个缩写字符,而小写m则表示月份的数字(带前导0);没有大写的J,只有小写j表示月份的日期,无前导o;若需要月份带前导则使用小写d。 echo date('Y-M-j');2007-Feb-6 echo date('Y-F-jS');2007-February-6th 大写M表示月份的3个缩写字符,而大写F表示月份的英文全写。(没有小写f)大写S 表示日期的后缀,比如“st”、“nd”、“rd”和“th”,具体看日期数字为何。 小结:表示年可以用大写的Y和小写y;表示月可以用大写F、大写M、小写m和小写n(分别表示字符和数字的两种方式);表示日可以用小写d和小写j,大写S表示日期的后缀。 2,时:分:秒 默认情况下,PHP解释显示的时间为“格林威治标准时间”,与我们本地的时间相差8个小时。 echo date('g:i:s a');5:56:57 am echo date('h:i:s A');05:56:57 AM 小写g表示12小时制,无前导0,而小写h则表示有前导0的12小时制。当使用12小时制时需要表明上下午,小写a表示小写的“am”和“pm”,大写A表示大写的“AM”和“PM”。 echo date('G:i:s');14:02:26 大写G表示24小时制的小时数,但是不带前导的;使用大写的H表示带前导的24小时制小时数 小结:字母g表示小时不带前导,字母h表示小时带前导;小写g、h表示12小时制,大写G、H表示24小时制。 3,闰年、星期、天 echo date('L');今年是否闰年:0 echo date('l');今天是:Tuesday echo date('D');今天是:Tue 大写L表示判断今年是否闰年,布尔值,为真返回1,否则为0;小写l表示当天是星期几的英文全写(Tuesday);而使用大写D表示星期几的3个字符缩写(Tue)。 echo date('w');今天星期:2 echo date('W');本周是全年中的第06 周 小写w表示星期几,数字形式表示大写W表示一年中的星期数 echo date('t');本月是28 天 echo date('z');今天是今年的第36 天 小写t表示当前月份又多少天小写z表示今天是本年中第几天 4,其他 echo date('T');UTC大写T表示服务器的时间区域设置

unix date命令参数说明

参数含义: %a 显示星期简写 (Sun..Sat) %A 显示完整星期(Sunday..Saturday) %b 显示月份简写(Jan..Dec) %B 显示完整月份(January..December) %c 显示当前日期,格式如:Thu Aug 13 11:04:05 2009 %C 显示世纪,当前年除100后的整数部分,如当前为20 (year divided by 100 and truncated to an integer)[00-99] %d 显示当前那日,范围(01..31) %D 日期,格式如(mm/dd/yy) %e 显示当前日,与%d不同的是%d显示01,而%e显示1,范围 ( 1..31) %F 如 %Y-%m-%d的日期格式 %g the 2-digit year corresponding to the %V week number %G the 4-digit year corresponding to the %V week number %h 与 %b相同 %H 24小时制的小时,范围(00..23) %I 12小时制的小时,范围(01..12) %j 一年中的那天,范围是(001..366) %k 24小时制的小时,只显示1而不显示01,范围( 0..23) %l 12小时制的小时,只显示1而不显示01,范围( 1..12) %m 显示月份,范围(01..12) %M 显示分钟,范围(00..59) %n 新行 %N 显示秒(000000000..999999999) %p locale's upper case AM or PM indicator (blank in many locales) %P locale's lower case am or pm indicator (blank in many locales) %r 时间, 12小时制,格式(hh:mm:ss [AP]M) %R 时间, 24小时制,格式(hh:mm) %s 从1970-01-01 00:00:00到现在的秒数。seconds since '00:00:00 1970-01-01 UTC' (a GNU extension) %S 秒,显示当前时间的秒,范围(00..60); the 60 is necessary to accommodate a leap sec-ond 其中60需要考虑到闰秒 %t a horizontal tab %T 时间, 24-hour (hh:mm:ss)24小时制 %u day of week (1..7); 1 represents Monday,星期几,其中1代表星期一,其他类似。 %U week number of year with Sunday as first day of week (00..53),一年中的第几个星期,其中以星期日为第一天 %V week number of year with Monday as first day of week (01..53),一年中的第几个星期,其中以星期一为第一天 %w day of week (0..6); 0 represents Sunday,星期几,其中0代表星期日,1代表星期一,其他类似 %W week number of year with Monday as first day of week (00..53),一年中的第几个星期,其中星期一为第一天,范围从00-53 %x locale's date representation (mm/dd/yy) 按mm/dd/yy格式显示日期 %X locale's time representation (%H:%M:%S)等于%H:%M:%S %y last two digits of year (00..99)显示2位数的年 %Y year (1970...) 显示4位数的年 %z RFC-2822 style numeric timezone (-0500) (a nonstandard extension) %Z time zone (e.g., EDT), or nothing if no time zone is determinable

相关文档