免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 19184 | 回复: 17
打印 上一主题 下一主题

【求教】AIX下怎么用DATE取上月的月份? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-25 09:13 |只看该作者 |倒序浏览
本菜鸟想在AIX系统下取上月的月份,如果用DATE函数怎么实现啊?

论坛徽章:
0
2 [报告]
发表于 2007-09-25 10:19 |只看该作者
date '%m'

[ 本帖最后由 ivhb 于 2007-9-25 10:20 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2007-09-25 10:27 |只看该作者
原帖由 ivhb 于 2007-9-25 10:19 发表
date '%m'

老大,我请教的是上月的月份,而且能在12月时 计算出上月是 01月的。

论坛徽章:
0
4 [报告]
发表于 2007-09-25 10:32 |只看该作者
呵呵,这个.....

论坛徽章:
0
5 [报告]
发表于 2007-09-25 10:38 |只看该作者
原帖由 lan97 于 2007-9-25 10:27 发表

老大,我请教的是上月的月份,而且能在12月时 计算出上月是 01月的。

12月上个月没记错的话,应该是11月吧
非1时,减1即为上月月份
1时,就print 12

论坛徽章:
0
6 [报告]
发表于 2007-09-25 10:46 |只看该作者
原帖由 joan8363 于 2007-9-25 10:38 发表

12月上个月没记错的话,应该是11月吧
非1时,减1即为上月月份
1时,就print 12



哦哦,是我糊涂了 1月的上月是12月
我乱写了个sh,语法估计都错了 ,请各位改下。

month=`date "+%m"`
permonth=`expr $month - 1`
month_len=`expr length $permonth`

if [$month_len=1]; then
v_month=0$permonth
elif [$month_len=2]; then
v_month=$permonth
elif [$permonth=0]; then
v_month=`12`
fi

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
7 [报告]
发表于 2007-09-25 11:03 |只看该作者
date +%m |sed 's/$/b12a01a02a03a04a05a06a07a08a09a10a11a12/;
s/^\(..\)b.*\(..\)a\1.*/\2/'

论坛徽章:
0
8 [报告]
发表于 2007-09-25 11:10 |只看该作者
原帖由 waker 于 2007-9-25 11:03 发表
date +%m |sed 's/$/b12a01a02a03a04a05a06a07a08a09a10a11a12/;
s/^\(..\)b.*\(..\)a\1.*/\2/'


哇,大师果然强悍。 菜鸟我还是想请教下,怎么修改下面的脚本才是对的

month=`date "+%m"`
permonth=`expr $month - 1`
month_len=`expr length $permonth`

if ["$month_len"="1"]; then
v_month=0$permonth
elif ["$month_len"="2"]; then
v_month=$permonth
elif ["$permonth"="0"]; then
v_month=12
fi

用SH运行时 报错
test.sh[5]: [1=1]:  not found.
test.sh[7]: [1=2]:  not found.
test.sh[9]: [8=0]:  not found.

论坛徽章:
0
9 [报告]
发表于 2007-09-25 11:14 |只看该作者
month=$(date "+%m"|sed '/^0/ s/0//')
permonth=`expr $month - 1`
month_len=`expr length $permonth`
if [ $month_len=1 ]; then
v_month=0$permonth
elif [ $month_len=2 ]; then
v_month=$permonth
elif [ $permonth=0 ]; then
v_month=`12`
fi
echo ${v_month}


这是你的思路

论坛徽章:
0
10 [报告]
发表于 2007-09-25 11:15 |只看该作者
[ "$month_len" = "1" ]; 即可
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP