`
billbai
  • 浏览: 10112 次
社区版块
存档分类
最新评论

unix shell 计算明天和昨天日期的函数 share 给大家

阅读更多

#返回月份的天数
get_mon_days()
{
Y=`expr substr $1 1 4`
M=`expr substr $1 5 2`

r1=`expr $Y % 4`
r2=`expr $Y % 100`
r3=`expr $Y % 400`

case $M in
01|03|05|07|08|10|12) days=31;;
04|06|09|11) days=30;;
esac
if [ $M -eq 02 ]
then
if [ r1 -eq 0 -a r2 -ne 0 -o r3 -eq 0 ]
then
days=29
else
days=28
fi
fi
echo $days
}
#返回昨天日期
get_before_date()
{
Y=`expr substr $1 1 4`
M=`expr substr $1 5 2`
D=`expr substr $1 7 2`
YY=`expr $Y - 1`
MM=`expr $M - 1`
DD=`expr $D - 1`
MM=`printf “%02d” $MM`
DD=`printf “%02d” $DD`
dd=$Y$MM
dad=`get_mon_days $dd`
be_date=$Y$M$DD
if [ $D -eq 01 ]
then
if [ $M -ne 01 ]
then
be_date=$Y$MM$dad
fi
if [ $M -eq 01 ]
then
be_date=$YY”1231″
fi
fi
echo $be_date

}
#返回明天日期
get_next_date()
{
Y=`expr substr $1 1 4`
M=`expr substr $1 5 2`
D=`expr substr $1 7 2`
YY=`expr $Y + 1`
MM=`expr $M + 1`
DD=`expr $D + 1`
MM=`printf “%02d” $MM`
DD=`printf “%02d” $DD`
r1=`expr $Y % 4`
r2=`expr $Y % 100`
r3=`expr $Y % 400`

next_date=$Y$M$DD

if [ $D -eq 30 ]
then
case $M in
04|06|09|11) next_date=$Y$MM”01″;;
esac
fi
if [ $D -eq 31 ]
then
next_date=$Y$MM”01″
case $M in
12) next_date=$YY”0101″;;
esac
fi
if [ $M -eq 02 ]
then
if [ r1 -eq 0 -a r2 -ne 0 -o r3 -eq 0 ]
then
if [ $D -eq 29 ]
then
next_date=$Y$MM”01″
fi
else
if [ $D -eq 28 ]
then
next_date=$Y$MM”01″
fi
fi
fi
echo $next_date
}

分享到:
评论

相关推荐

    shell -ld教程

    10. **Shell函数和脚本调试** 使用`set -x`开启调试模式,可以看到脚本执行过程中的每一条命令。`set -u`可检查未定义的变量,避免潜在错误。 通过学习和实践以上内容,你可以掌握基本的Shell编程技能,为日常的...

    Linux Shell Scripting(linux shell编程)

    - **C Shell (csh)** 和 **TC Shell (tcsh)**:这些Shell在某些老版本的Unix系统中比较常见。 #### 三、目标读者 此文档主要面向以下几类读者: - **学生**:希望通过学习Shell编程来提升自己的技能。 - **Linux...

    bash_shell讲义

    在用户输入命令行时,Readline会过滤和处理输入,然后传递给Shell执行。Bash Shell内建支持Readline,从而提供了这些增强的交互体验。 **Shell变量** - **内置变量**:如`$$`表示当前进程ID,`$?`表示上一条命令的...

    babun-1.2.0-dist.zip

    4. **bash shell**:babun提供了增强的bash shell,可能包括自定义的prompt、别名和函数。 5. **包管理器**:babun使用Zypper作为包管理器,用于安装、更新和管理软件包。 6. **额外工具**:可能包含一些常用的Unix...

    Scala基础语法课件汇总整本书电子教案全套课件完整版ppt最新教学教程.pptx

    + Unix: $SCALA_HOME/usr/local/share/scala + $PATH Scala 下载和安装: * 下载:http://www.scala-lang.org/downloads * 安装步骤:一直下一步 Scala 基础语法 Scala 的基础语法包括: * 标示符、命名规范...

    MinGW.zip

    MinGW,全称为 Minimalist GNU for Windows,是一个可移植的GNU工具集,旨在提供一个轻量级且符合POSIX标准的开发环境,用于在Windows操作系统上编写和编译C和C++程序。这个名为"MinGW.zip"的压缩包包含了MinGW的...

    mingw-gcc-4.7.2-msys-win32

    它包含了一些基本的Unix工具,如bash shell、make等,使得在Windows上可以使用类似于Unix的命令行工具进行开发。在这个版本中,MSYS与MingW结合,为开发者提供了一套完整的开发环境,能够无缝地在Windows上进行源码...

    MinGW资源包方便快速上手.7z

    8. **msys**: MSYS是MinGW的一部分,它提供了一个轻量级的POSIX兼容层,使得在Windows环境下可以运行基于Unix shell的脚本和工具。它包含了一个bash shell、基本的Unix工具(如ls、grep、sed等)以及一些开发工具。 ...

    MinGW._.zip

    1. **msys**:这是一个轻量级的Unix-like环境,使得开发者可以在Windows上使用类似于Unix的命令行工具,如bash shell和make工具。这对于习惯于Unix/Linux开发环境的程序员来说非常方便,它支持自动化构建过程和脚本...

    bash总结最新版

    在Linux和Unix系统中,Bash(Bourne-Again SHell)是默认的命令行解释器,用于交互式和脚本式编程。这个“bash总结最新版”提供了关于Bash的一些基本操作和环境变量的使用,对于理解和操作Bash环境至关重要。 1. **...

    MinGW(Minimalist GNU for Windows)

    5. **msys**:MSYS是MinGW的一个配套工具,提供了一个类似Unix的命令行环境,帮助开发者在Windows上使用熟悉的bash shell、make工具和其他Unix-like工具。 6. **libexec**:这个目录通常存放可执行的辅助程序,它们...

    点文件

    4. **函数定义**:Shell脚本支持函数定义,可以在点文件中创建自定义函数,方便在Shell会话中重复使用。 5. **别名设置**:通过点文件,可以定义命令的别名,如`alias ll='ls -l'`,使`ll`命令等同于`ls -l`,简化...

    MinGW.zip 工具包

    MSYS提供了一个bash shell环境,使得用户可以使用类似于Unix的命令行工具,如`ls`, `cd`, `grep`等。 使用MinGW时,开发者需要设置好环境变量,确保编译器和相关工具可以在命令行中被找到。然后,他们可以编写源...

    zsh-complete:配置ZSH完成行为

    `compinit`函数会查找`/usr/share/zsh/site-functions`和`$HOME/.zsh/completion`目录下的完成函数,这些函数定义了特定命令的完成规则。 ZSH的完成定义通常存储在`.compdef`文件中,它们是用`zsh`语法编写的。例如...

    gdb调试常用命令.pdf

    `info share`,显示共享函数库信息。 - **应用场景**: 获取程序的详细信息,如断点列表、共享库等。 24. **disable** - **功能**: 关闭某个`breakpoint`或`watchpoint`的功能。 - **应用场景**: 暂时不想触发...

    rar压缩软件.rar

    'l' 列出存档文件的属性、大小、日期、时间和名称,每个文件一行。如 果文件被加密,行以 * 号开始。 'lt' 以多行模式显示详细的文件信息。此信息包括文件校验和值、主机 OS、压缩选项和其他参数。 'lta' ...

    dotfiles:我的Arch Linux dotfiles和东西

    1. `.bashrc` 和 `.bash_profile`:这两个文件是Bash shell的初始化脚本,用于设置环境变量、别名和函数,当一个新的shell会话启动时会被执行。 2. `.config` 目录:存放特定应用的配置文件,例如Vim的`.vimrc`,i3...

    XDG-configuration:符合XDG的环境(例如Linux和macOS)的配置文件

    XDG配置,全称为"X Desktop Group Configuration",是遵循XDG Base Directory Specification的一种规范,主要用于组织和管理Linux及macOS等类Unix系统的用户环境配置文件。这个规范旨在提供一个标准化的方式,使得...

    dotfiles:我的dotfiles:D

    点文件(dotfiles)在IT领域,特别是Unix和Linux系统中,是指那些以点(.)开头的隐藏文件。这些文件通常存储用户的个人配置、设置和偏好,它们控制着各种命令行工具、终端模拟器、窗口管理器以及其它软件的行为。...

    Linux autotools 讲稿

    - **目标受众**:这份演示文稿的目标读者是对Unix开发工具(如shell、make、编译器等)有所了解并希望学习Autotools的开发者。 - **最新版本获取**:读者可以从指定网址下载该文档的最新版本:...

Global site tag (gtag.js) - Google Analytics