文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>巧用时区变换计算日期

巧用时区变换计算日期

时间:2008-01-31  来源:phrack2561

    Unix系统环境变量中有一个TZ,是TimeZone的简称,也就是我们所熟知的时区的概念,它影响着系统时间的计算。    系统时间是以秒数为单位存储在计算机中的,它记录的是从1970年1月1日零时起到当前所经过的时间秒数。通过下面C代码可以获得。  

#include <stdio.h>
#include <time.h>

int main()
{
   time_t tm = time(NULL);
   printf("Passed Second:%ld\n", tm );
   return 0;
}

    在Unix系统中我们通常使用date命令来获知当前时间,然而date得到的时间是进行过变换的,除了把秒转换成对应的年月日并累加之外,还需要根据TZ对结果进行修正。每往东或是西偏移一个时区,时间就需要对应的加减一个小时,根据这一点我们可以利用修改时区设置来获得想要的时间或日期。代码如下:

#!/bin/bash

# file: getday.sh

 

if [ $# -ne 1 ]

then

    echo "Usage: ${0##*/} <+/-num>" >&2

    exit -1;

fi

 

let day=$1*24

TZ_bak=$TZ

TZ="PRC+$day"

date +%Y/%m/%d

TZ=${TZ_bak}

    例如今天是2008/01/31,那么

getday.sh +3   --->  2008/01/28

getday.sh -3   --->  2008/02/03

getday.sh 1000  --->  2005/05/06

   简单十数行代码省去了润年的计算以及每月天数的加减,是不是物超所值呢?

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载