免费注册 查看新帖 |

Chinaunix

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

请大家出谋划策,多谢了! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-03-16 07:19 |只看该作者 |倒序浏览
例:先打印
12345--12345--12345--12345--12345--12345
其中12345分别代表一周中的五个工作日。
然后我根据得到的数值画图,比如得到2,说明工程从星期二开始,假设需要10天,希望得到的结果如下

  12345--12345--12345--12345--12345--12345

     ****T1*******

就是说怎样把打印的第一个星号定位到相应的日子下面?大家有什么好的思路吗?
多谢!

论坛徽章:
0
2 [报告]
发表于 2003-03-16 10:22 |只看该作者

请大家出谋划策,多谢了!

  1. weekday=`date +"%u"`
  2. printf "**************\n"
  3. for i in 1 2 3 4 5 6 7
  4. do
  5.   if [ $i -eq $weekday ]
  6.   then
  7.      printf "T1"
  8.   else
  9.      printf "**"
  10.   fi
  11. done
  12. printf "\n"
  13. 运行结果
  14. **************
  15. ************T1
复制代码

可以吗?

论坛徽章:
0
3 [报告]
发表于 2003-03-16 15:23 |只看该作者

请大家出谋划策,多谢了!

原帖由 "pariswood" 发表:
例:先打印
然后我根据得到的数值画图,比如得到2,说明工程从星期二开始,假设需要10天,希望得到的结果如下

  12345--123..........

你什么意思,是不是从工程开始时开始打*一直到工程结束,工程结束时打T1啊?

论坛徽章:
0
4 [报告]
发表于 2003-03-16 15:52 |只看该作者

请大家出谋划策,多谢了!

    

论坛徽章:
0
5 [报告]
发表于 2003-03-16 17:13 |只看该作者

请大家出谋划策,多谢了!

楼上的程序好像还和我的意思不完全一样。
DEVELOPPER   MTWTF--MTWTF--MTWTF--MTWTF--MTWTF--MTWTF

TOM                       ****T1*******

比如说我现在有d=3是工程开始的日期对应星期三。还有i=10是工程需要时间。周末不算。画出的土应该如上所示。至于Tn的位置倒不是特别重要但是最好在中间。主要的问题是如果上面的MTWTF...不是从左顶端开始的。我画星号的时候怎么定位到相应的位置呢?
再谢过各位!

论坛徽章:
0
6 [报告]
发表于 2003-03-16 17:24 |只看该作者

请大家出谋划策,多谢了!

NAME         MTWTF--MTWTF--MTWTF--MTWTF--MTWTF--MTWTF

TOM                ****T1*******


刚才那贴得结果有点问题
正确如上。。。
不好意思占用了版面

论坛徽章:
0
7 [报告]
发表于 2003-03-16 17:28 |只看该作者

请大家出谋划策,多谢了!

MTWTF--MTWTF--MTWTF--MTWTF--MTWTF--MTWTF

*****T1******

还是不行,算了,先当作星期一开始好了。。。
不知大家明白我的意思没?

就是说画的第一颗星应该和它对应的日期在同一列,但是这一列并不是屏幕的第一列。

论坛徽章:
0
8 [报告]
发表于 2003-03-16 21:51 |只看该作者

请大家出谋划策,多谢了!

再试试!
  1. timer=10
  2. name='WANG'
  3. flag='T1'
  4. star=''
  5. timer=`echo $timer + $weekday - 1|bc`
  6. y=`echo $timer / 2 + $weekday - 1|bc`
  7. printf "NAME MTWTF--MTWTF--MTWTF--MTWTF--MTWTF--MTWTF\n"
  8. printf "%s " $name
  9. i=1
  10. while [ $i -lt $timer ]
  11. do
  12.   n=`echo $i % 6|bc`
  13.   k=`echo $i % 7|bc`
  14.   if [ $i -lt $weekday ]
  15.   then
  16.         star=$star' '
  17.   else
  18.         if [ $i -eq $y ]
  19.         then
  20.                 star=$star$flag
  21.         else
  22.                 if [ $n -eq 0 -o $k -eq 0 ]
  23.                 then
  24.                         star=$star'-'
  25.                 else
  26.                         star=$star'*'
  27.                 fi
  28.         fi
  29.   fi
  30.   i=`expr $i + 1`
  31. done
  32. printf "%s\n" "$star"

  33. 运行结果

  34. NAME MTWTF--MTWTF--MTWTF--MTWTF--MTWTF--MTWTF
  35. WANG     ***--T1**
复制代码

论坛徽章:
0
9 [报告]
发表于 2003-03-16 22:37 |只看该作者

请大家出谋划策,多谢了!

...

原来是想这样表示甘特图啊~~  

论坛徽章:
0
10 [报告]
发表于 2003-03-17 06:14 |只看该作者

请大家出谋划策,多谢了!

厉害厉害!!!

还有一点小bug
如果我们使用的人名不是和"NAME"一样4个字符的,就不能保证星号对应星期了。
大侠在和我一起想想。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP