Shell外贸如何判断日期是月末否是月末

shell date 加上指定天数月份年 - 为程序员服务
为程序员服务
shell date 加上指定天数月份年
shell date 加上指定天数月份年
在当前日期上添加10天:
date -d &10 day& +&%Y %m %d&
在当前日期上减去10天
date -d &-10 day& +&%Y %m %d&
在当前日期上添加两个月:
date -d &2 month& +&%Y %m %d&
在当前日期上减去两个月
date -d &-2 month& +&%Y %m %d&
在当前日期上加上1年:
date -d &1 year& +&%Y %m %d&
在当前日期上减去1年:
date -d &-1 year& +&%Y %m %d&
在当前日期上添加1年零一个月零一天:
date -d &1 year 1 month 1 day& +&%Y %m %d&
您可能的代码
相关聚客文章
荣誉:2088
相关专栏文章Linux shell 获取上上月月末日期 - imysql - 博客园
v_curr_rq=`date +%Y%m%d`
v_rq=`date -d "yesterday" +%Y%m%d`
v_lm=`date +%Y%m01`
v_lm_rq=`date -d "${v_lm} last day" +%Y%m%d`
v_llm_rq=`date -d "${v_lm} last month last day" +%Y%m%d`
echo ${v_curr_rq}
echo ${v_rq}
echo ${v_lm}
#上个月月末
echo ${v_lm_rq}
#上上个月月末
echo ${v_llm_rq}
阅读(...) 评论()Linux shell 获取上上月月末日期
时间: 16:19:31
&&&& 阅读:284
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&
v_curr_rq=`date +%Y%m%d`
v_rq=`date -d "yesterday" +%Y%m%d`
v_lm=`date +%Y%m01`
v_lm_rq=`date -d "${v_lm} last day" +%Y%m%d`
v_llm_rq=`date -d "${v_lm} last month last day" +%Y%m%d`
echo ${v_curr_rq}
echo ${v_rq}
echo ${v_lm}
#上个月月末
echo ${v_lm_rq}
#上上个月月末
echo ${v_llm_rq}
&标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文:http://www.cnblogs.com/valinfo/p/7099335.html
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!博客分类:
判断传的日期是否为月末,思路是根据linux自带的cal日历来判断,当前的日期是否为日历的月份最后一天。
代码如下:
y=`date -d ''$dt1' 0 days'
m=`date -d ''$dt1' 0 days'
d=`date -d ''$dt1' 0 days'
if [ $(date -d ''$dt1' 0 days'
+%d) -eq $(cal $m $y |xargs|awk '{print $NF}') ]
浏览: 131657 次
来自: 北京
CommonRcFileCompression 这个类里的DA ...
要导入哪些jar包呀?
有完整的源码吗?
timeStampDate函数没找到
您用的hadoop和hive的版本是什么呢?
有没有源码呢!?学习一下哎!
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'判断输入的日期是否正确的shell脚本
转载 &更新时间:日 11:04:12 & 投稿:mdxy-dxy
这篇文章主要介绍了判断输入的日期是否正确的shell脚本,需要的朋友可以参考下
今儿个讲得是判断输入的日期是否正确,有利用到我们之前03这个例子中的函数
下面是代码
# valid-date -- Validates a date, taking into account leap year rules.
exceedsDaysInMonth()
case $(echo $1|tr '[:upper:]' '[:lower:]') in
jan* ) days=31; feb* ) days=28;
mar* ) days=31; apr* ) days=30;
may* ) days=31; jun* ) days=30;
jul* ) days=31; aug* ) days=31;
sep* ) days=30; oct* ) days=31;
nov* ) days=30; dec* ) days=31;
* ) echo "$0: Unknown month name $1" &&2; exit 1
if [ $2 -lt 1 -o $2 -gt $days ] ; then
# the day number is valid
isLeapYear()
if [ "$((year % 4))" -ne 0 ] ; then
return 1 # nope, not a leap year
elif [ "$((year % 400))" -eq 0 ] ; then
return 0 # yes, it's a leap year
elif [ "$((year % 100))" -eq 0 ] ; then
## Begin main script
if [ $# -ne 3 ] ; then
echo "Usage: $0 month day year" &&2
echo "Typical input formats are 8 3 2002" &&2
# Normalize date and split back out returned values
if [ $? -eq 1 ] ; then
# error condition already reported by normdate
monthnoToName()
# Sets the variable 'month' to the appropriate value
case $1 in
01|1 ) monthd="Jan"; 02|2 ) monthd="Feb";
03|3 ) monthd="Mar"; 04|4 ) monthd="Apr";
05|5 ) monthd="May"; 06|6 ) monthd="Jun";
07|7 ) monthd="Jul"; 08|8 ) monthd="Aug";
09|9 ) monthd="Sep";
10) monthd="Oct";
11) monthd="Nov";
12) monthd="Dec";
* ) echo "$0: Unknown numeric month value $1" &&2; exit 1
monthnoToName $1
month="$monthd"
if ! exceedsDaysInMonth $month "$2" ; then
if [ "$month" = "Feb" -a "$2" -eq "29" ] ; then
if ! isLeapYear $3 ; then
echo "$0: $3 is not a leap year, so Feb doesn't have 29 days" &&2
echo "$0: bad day value: $month doesn't have $2 days" &&2
echo "Valid date: $newdate"
1)首先判断用户输入的参数个数是否正确,接着case $1 in 语句判断月份是否合理。
2)monthnoToName 函数之前出现在我们之前的第03个脚本案例中,用来转换输入的数字日期为字符串。
3) exceedsDaysInMonth 用来判断天数是否超过对应月的最大天数,紧跟着 if [ "$month" = "Feb" -a "$2" -eq "29" ] ; then if ! isLeapYear $3 ; then 用来判断闰年2月的特殊情况
4)总体的感觉是脚本还是很紧凑的,特别是在判断闰年与2月的关系的那段代码,有点意思。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具}

我要回帖

更多关于 输入日期自动月末 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信