仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 522|回复: 7
打印 上一主题 下一主题

[其他Linux] 来一发linux命令详解date利用办法(盘算母亲节和父亲节日期剧本示例)

[复制链接]
简单生活 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 15:02:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
但不会命令而成为高手也是不可能的.这就好比学英语,什么语法都不懂,只捧着单词手册背单词是学不会英语的,但是没有单词词汇量英语水平也提不高的。

经常使用参数
格局:date
显现以后日期工夫。

格局:datemmddHHMM#简而言之,就是“月日时分”
格局:datemmddHHMMYYYY
格局:datemmddHHMM.SS
格局:datemmddHHMMYYYY.SS
设置以后日期工夫,只要root用户才干实行,实行完以后还要实行clock-w来同步到硬件时钟。
mm为月份,dd为日期,HH为小时数,MM为分钟数,YYYY为年份,SS为秒数。

格局:date+FORMAT
依据指定格局显现以后工夫。好比date+%Y-%m-%d就是以YYYY-mm-dd的情势显现以后日期,个中YYYY是年份,mm为月份,dd为日期。

经常使用FORMAT
%YYYYY格局的年份(Year)
%mmm格局的月份(),01-12
%ddd格局的日期(dayofmonth),01-31
%HHH格局的小时数(),00-23
%MMM格局的分钟数(),00-59
%SSS格局的秒数(),00-59
%FYYYY-mm-dd格局的完全日期(Fulldate),同%Y-%m-%d
%THH-MM-SS格局的工夫(Time),同%H:%M:%S
%s自1970年以来的秒数。C函数time(&t)大概Java中System.currentTimeMillis()/1000,newDate().getTime()/1000
%w礼拜几,0-6,0暗示礼拜天
%u礼拜几,1-7,7暗示礼拜天
注重以上格局是能够恣意组合的,还能够包含非格局串,好比date"+明天是%Y-%d-%m,如今是$H:%M:%S"
更多格局mandate或infodate

格局:date-dSTRING
格局:date--date=STRING
格局:date-dSTRING+FORMAT
显现用STRING指定的日期工夫(displaytimedescribedbySTRING,not‘now)。

格局:date-sSTRING
格局:date--set=STRING
设置以后工夫为STRING指定的日期工夫。

STRING可谓变更多样,撑持良多种日期工夫的形貌体例。上面枚举一些经常使用的日期暗示体例,但愿可以触类旁通。
指定日期:
date-dYYYY-mm-dd
指准时间,日期是明天:
date-dHH:MM:SS
指定日期工夫:
date-d"YYYY-mm-ddHH:MM:SS"
指定1970年以来的秒数:
date-d1970-01-011251734400secutc(2009年09月01日礼拜二00:00:00CST)
date-d1970-01-011314177812secutc(2011年08月24日礼拜三17:23:32CST)
明天:
date
date-dtoday
date-dnow
今天:
date-dtomorrow
date-dnext-day
date-dnext-days
date-d"nextday"
date-d"nextdays"
date-d"+1day"
date-d"+1days"
date-d"1day"
date-d"1days"
date-d"-1dayago"
date-d"-1daysago"
今天:
date-dyesterday
date-dlast-day
date-dlast-days
date-d"lastday"
date-d"lastdays"
date-d"-1day"
date-d"-1days"
date-d"1dayago"
date-d"1daysago"
前天:
date-d"2dayago"
date-d"2daysago"
date-d"-2day"
date-d"-2days"
年夜前天:
date-d"3dayago"
date-d"3daysago"
date-d"-3day"
date-d"-3days"
上周,一周前:
date-d"1weekago"
date-d"1weeksago"
上个礼拜五(不是上周五):
date-d"last-friday"
date-d"lastfriday"
上月,一月前:
date-dlast-month
date-dlast-months
date-d"-1month"
date-d"-1months"
下月,一月后:
date-dnext-month
date-dnext-months
date-d"+1month"
date-d"+1months"
客岁,一年前:
date-dlast-year
date-dlast-years
date-d"-1year"
date-d"-1years"
来岁,一年后:
date-dnext-year
date-dnext-years
date-d"+1year"
date-d"+1years"
一小时前:
date-d"last-hour"
date-d"last-hours"
date-d"1hourago"
date-d"1hoursago"
一小时后:
date-d"1hour"
date-d"1hours"
一分钟前:
date-d"1minuteago"
date-d"1minutesago"
一分钟后:
date-d"1minute"
date-d"1minutes"
一秒前:
date-d"1secondago"
date-d"1secondsago"
一秒后:
date-d"1second"
date-d"1seconds"

利用示例
示例一显现和设置日期工夫
[root@node56ct08]#date
2011年08月20日礼拜六17:37:11CST
[root@node56ct08]#date08220942
2011年08月22日礼拜一09:42:00CST
[root@node56ct08]#clock-w
[root@node56ct08]#date
2011年08月22日礼拜一09:42:01CST
[root@node56ct08]#

示例二显现指定日期工夫
[root@node56~]#date
2011年08月23日礼拜二07:41:03CST
[root@node56~]#date-dnext-day+%Y%m%d
20110824
[root@node56~]#date-dnext-day+%F
2011-08-24
[root@node56~]#date-dnext-day+%F%T
2011-08-2407:41:47
[root@node56~]#date-dlast-day+%F%T
2011-08-2207:43:46
[root@node56~]#
[root@node56~]#date-dyesterday+%F%T
2011-08-2207:44:31
[root@node56~]#date-dtomorrow+%F%T
2011-08-2407:45:19
[root@node56~]#date-dlast-month+%Y%m
201107
[root@node56~]#date-dnext-month+%Y%m
201109
[root@node56~]#date-dnext-year+%Y
2012
[root@node56~]#

示例三写一个剧本来盘算母亲节和父亲节的日期
母亲节(每一年5月的第二个日曜日)
  2005年5月8日
  2006年5月14日
  2007年5月13日
  2008年5月11日
  2009年5月10日
  2010年5月9日
  2011年5月8日
  2012年5月13日
父亲节(6月第三个日曜日),上面是比来几年的父亲节日期
  2005年6月19日
  2006年6月18日
  2007年6月17日
  2008年6月15日
  2009年6月21日
  2010年6月20日
  2011年6月19日
  2012年6月17日

上面是Linux检察某年某月的日历的体例。
[root@node56~]#cal52012
蒲月2012
日一二三四五六
12345
6789101112
13141516171819
20212223242526
2728293031
上面的剧本用来盘算指定年份的母亲节和父亲节的日期。
Bash剧本:calc_date.sh
.代码以下:

#!/bin/sh
#母亲节(每一年5月的第二个日曜日)
#usage:mother_day[year]
mother_day()
{
localmay1#5月1日
if["$1"];then
may1=$1-05-01#也能够是是$1/05/01
else
may1=5/1#也能够是05/01,但不克不及是05-01
fi
#date-d$may1
#看5月1日是礼拜几
localw=$(date+%w-d$may1)#%w0=礼拜天1-6=礼拜一到六
#echo$w
if[$w-eq0];then#假如是5月1日礼拜天,就跳过一个礼拜
date+%F-d"$may1+1week"
else#假如5月1日不是礼拜天,就跳过两个礼拜,再减往w天
date+%F-d"$may1+2week-$wday"
fi
}
#父亲节(每一年6月的第三个日曜日)
#usage:father_day[year]
father_day()
{
localjune1#保留6月1日的日期
if["$1"];then
june1=$1-06-01
else
june1=6/1
fi
#由于接纳1-7暗示礼拜几,简化了盘算逻辑
localw=$(date+%u-d$june1)#%u7=礼拜天,1-6=礼拜一到六
date+%F-d"$june1+3week-$wday"
}
#usage:./calc_date.sh[year]
if["$1"];then
echoMotherDayofyear$1is$(mother_day"$1")
echoFatherDayofyear$1is$(father_day"$1")
else
echoMotherDayofthisyearis$(mother_day)
echoFatherDayofthisyearis$(father_day)
fi


运转了局以下:
.代码以下:

[root@node56~]#./calc_date.sh
MotherDayofthisyearis2011-05-08
FatherDayofthisyearis2011-06-19
[root@node56~]#./calc_date.sh2011
MotherDayofyear2011is2011-05-08
FatherDayofyear2011is2011-06-19
[root@node56~]#./calc_date.sh2010
MotherDayofyear2010is2010-05-09
FatherDayofyear2010is2010-06-20
[root@node56~]#./calc_date.sh2009
MotherDayofyear2009is2009-05-10
FatherDayofyear2009is2009-06-21
[root@node56~]#./calc_date.sh2008
MotherDayofyear2008is2008-05-11
FatherDayofyear2008is2008-06-15
[root@node56~]#./calc_date.sh2007
MotherDayofyear2007is2007-05-13
FatherDayofyear2007is2007-06-17
[root@node56~]#./calc_date.sh2006
MotherDayofyear2006is2006-05-14
FatherDayofyear2006is2006-06-18
[root@node56~]#./calc_date.sh2005
MotherDayofyear2005is2005-05-08
FatherDayofyear2005is2005-06-19
[root@node56~]#./calc_date.sh2012
MotherDayofyear2012is2012-05-13
FatherDayofyear2012is2012-06-17



学习python,无论你是打算拿他当主要开发语言,还是当辅助开发语言,你都应该学习他,因为有些时间我们耗不起。
透明 该用户已被删除
沙发
发表于 2015-1-18 15:38:49 | 只看该作者
其次,Linux简单易学,因为我们初学者只是学的基础部分,Linux的结构体系非常清晰,再加上老师循序渐进的教学以及耐心的讲解,使我们理解起来很快,短期内就基本掌握了操作和运行模式。
分手快乐 该用户已被删除
板凳
发表于 2015-1-27 06:41:59 | 只看该作者
在学习linux的工程中,linux学习方法有很多种,这里是小编的学习心得,给大家拿出来分享一下。
因胸联盟 该用户已被删除
地板
发表于 2015-2-11 05:34:14 | 只看该作者
为什么要学Linux呢?每个人都有不同的看法,下面我说说自己的感想吧。?
莫相离 该用户已被删除
5#
发表于 2015-3-1 22:44:27 | 只看该作者
linux鸟哥的私房菜,第三版,基础篇,网上有pdf下的,看它的目录和每章的介绍就行了,这个绝对原创!
admin 该用户已被删除
6#
发表于 2015-3-11 01:15:27 | 只看该作者
在学习的过程中,我们用的是VM虚拟机,开始时真的不真的该怎么去做,特别是我的是命令窗口界面,别人的是图形界面,我都不知道怎么调过来。
活着的死人 该用户已被删除
7#
发表于 2015-3-17 18:08:16 | 只看该作者
让我树立了很大的信心学好这门课程,也学到了不少专业知识和技能。?
变相怪杰 该用户已被删除
8#
发表于 2015-3-24 20:14:26 | 只看该作者
Linux是参照Unix思想设计的,理解掌握Linux必须按照Unix思维来进行。思想性的转变比暂时性的技术提高更有用,因为他能帮助你加快学习速度。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 19:31

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表