介绍
如何在shell中使用AWK实现一个日历小程序?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
代码段:
function whichWeek (y), m, d, s), { ,,,s =0 ,,,if (((y % 4,==, 0),,,, (y % 100, !=, 0)), | |, (y % 400,==, 0)), if (M [2],==, 28), M [2] + + ,,,if (y> 0), s +=, - y +, int (y/4),背后,int (y/100), +, int (y/400) ,,,while (祝辞m 1), s +=, M (- M) ,,,return (s + d) % 7 } function printCalendar (y), m, d, nowWeek,, i) { ,,printf (“% d % s  % d % s \ n",, y,,,年,,,,,“月“) print 才能“日,一,二,三,四,五,六,“ ,,printf (“% s",,重复(,,,,,((nowWeek + 1) % 7) * 3)) for 才能;(i=1;, i<=M [M];,我+ +),{ ,,,if ((nowWeek + i), %, 7, !=, 6), { ,,,,,printf (“% 2 d “,我) ,,,},{else ,,,,,printf (“% 2 d  \ n",,我) ,,,} ,,} print 才能“\ n" } function 重复(国旗,,,,我,,str) { for 才能;(i=0;, i<时间;,我+ +),{ ,,,str =, str 旗帜 ,,} return 才能,str } function 选项(选择),{ if 才能;(ARGC 祝辞,1,,,,ARGV[1], ~,美元/^ \ + . */),{ ,,,print 命令行参数个数,,ARGV [1] ,,,opt =, substr (ARGV [1], 2) ,,,delete ARGV [1] ,,} return 才能选择 } BEGIN { M[1],才能=31 M[2],才能=28 M[3],才能=31 M[4],才能=30 M[5],才能=31 米才能[6],=,30岁 米才能[7],=31 米才能[8],=31 米才能[9],=,30岁 米才能[10],=31 米才能[11],=,30岁 米才能[12],=31 W才能[0],=,“日”; W才能[1],=,“一”; W才能[2],=,“二”; W才能[3],=,“三”; W才能[4],=,“四”; W才能[5],=,“五”; W才能[6],=,“六”; 分裂才能(选项(),,,,“!”) 时间=nowWeek 才能;whichWeek(日期[1]+ 0,日期[2]+ 0,,日期[3]+ 0) if 才能;(日期[3],!=,““),{ ,,,print “星期“,W (nowWeek) ,,},else if (日期[2],!=,““),{ ,,,printCalendar([1] + 0,日期,日期[2]+ 0,M[日期[2]],nowWeek) ,,},{else ,,,for (j=1;, j<=12;, j + +), { ,,,,,printCalendar(日期[1]+ 0,j, M[我],whichWeek(日期[1]+ 0,,,,0)) ,,,} ,,} }
看完上述内容,你们掌握如何在shell中使用AWK实现一个日历小程序的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!