我的编程空间,编程开发者的网络收藏夹
学习永远不晚

使用AWK在shell中生成日历小程序

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

使用AWK在shell中生成日历小程序

最近在学习sed和awk时,发现了一本入门级别的好书:《Software Design 中文版 03》。
我们这里的日历程序也是从那里得来,这里强烈推荐希望了解sed和awk的同志们入手本书。

代码段:


#  在shell中生成日历
#  使用方式
#  awk -f thisFile +2017
#  awk -f thisFile +2017.10
#  awk -f thisFile +2017.10.10
#
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, "年", m, "月")
  print "日 一 二 三 四 五 六 "
  printf("%s", repeat(" ", ((nowWeek+1)%7)*3))
 Dkuqh for (i=1; i<=M[m]; i++) {
    if ((nowWeek+i) % 7 != 6) {
      printf("%2d ", i)
    } else {
      printf("%2d \n", i)
    }
  }
  print "\n"
}
function repeat(flag, time, i, str){
  for (i=0; i<time; i++) {
    str = str flag
  }

  return str
}
function option(opt) {
  if (ARGC > 1 && ARGV[1] ~ /^\+.*$/) {
    print ARGC, ARGV[1]
    opt = substr(ARGV[1], 2)
    delete ARGV[1]
  }
  return opt
}
BEGIN {
  M[1] = 31
  M[2] = 28
  M[3] = 31
  M[4] = 30
  M[5] = 31
  M[6] = 30
  M[7] = 31
  M[8] = 31
  M[9] = 30
  M[10] = 31
  M[11] = 30
  M[12] = 31
  W[0] = "日"
  W[1] = "一"
  W[2] = "二"
  W[3] = "三"
  W[4] = "四"
  W[5] = "五"
  W[6] = "六"
  split(option(), date, ".")
  nowWeek = whichWeek(date[1]+0, date[2]+0, date[3]+0)
  if (date[3] != "") {
    print "星期" W[nowWeek]
  } else if (date[2] != "") {
    printCalendDkuqhar(date[1]+0, date[2]+0, M[date[2]], nowWeek)
  } else {
    for (j=1; j<=12; j++) {
      printCalendar(date[1]+0, j, M[i], whichWeek(date[1]+0, j, 0))
    }
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

使用AWK在shell中生成日历小程序

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

使用AWK在shell中生成日历小程序

最近在学习sed和awk时,发现了一本入门级别的好书:《Software Design 中文版 03》。 我们这里的日历程序也是从那里得来,这里强烈推荐希望了解sed和awk的同志们入手本书。 代码段:# 在shell中生成日历 #
2022-06-04

如何在shell中使用AWK实现一个日历小程序

如何在shell中使用AWK实现一个日历小程序?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。代码段:function whichWeek(y, m, d, s) { s
2023-06-09

使用一键生成小程序的优势是什么

这篇文章主要介绍了使用一键生成小程序的优势是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一,节省成本一键生成小程序可以帮助人们节省更多成本,这是非常重要的优势之一。与普
2023-06-27

使用微信小程序实现二维码生成功能

使用微信小程序实现二维码生成功能小程序的盛行使得开发者可以轻松地实现各种功能,而二维码生成功能正是其中之一。二维码作为快速传递信息的一种方式,被广泛应用于各种场景,如支付、活动推广等。在本篇文章中,我们将学习如何使用微信小程序实现二维码生成
使用微信小程序实现二维码生成功能
2023-11-21

在微信小程序使用picker实现日期选择

微信小程序开发项目中,或多或少要使用时间选择器picker实现日期选择。选择开始日期和结束日期 而且选择开始时间后,选择结束时间,能够选择的日期不能比开始日期还要早。要实现以上效果可这样写: 在wxml中写 view class="ran
2023-08-25

怎么使用微信小程序canvas2d生成图形验证码

本篇内容主要讲解“怎么使用微信小程序canvas2d生成图形验证码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用微信小程序canvas2d生成图形验证码”吧!成品展示:背景:大致看了一下
2023-06-30

在微信小程序中怎么使用three.js

本篇内容主要讲解“在微信小程序中怎么使用three.js”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“在微信小程序中怎么使用three.js”吧!1.首先引入下载材料,最后有完整源码默认你很熟悉
2023-07-05

echart在微信小程序中如何使用

今天小编给大家分享一下echart在微信小程序中如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。echarts不显示在
2023-07-05

如何在微信小程序中使用echart

如何在微信小程序中使用echart?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。首先到ECharts官网下载我放的是tool文件夹下面,你们随意引入的时候注意路径就行2.使
2023-06-15

如何在Linux中使用Shell 生成随机数和随机字符串

本篇文章为大家展示了如何在Linux中使用Shell 生成随机数和随机字符串,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。什么是Linux系统Linux是一种免费使用和自由传播的类UNIX操作系统,
2023-06-09

编程热搜

目录