FreeOZ论坛

标题: 澳洲主要城市时间.bat(仅限阿德筒子使用) [打印本页]

作者: zycbob    时间: 1-12-2009 19:43
标题: 澳洲主要城市时间.bat(仅限阿德筒子使用)
以下代码贴到记事本,保存为time.bat,路过的高手请给点优化的建议,谢谢

@echo off
cls
title 澳洲主要城市时间
:menu
cls
color 0A

echo.
echo                   ==================================
echo                   澳洲主要城市时间 %date%
echo                   ==================================
echo.

set "h=%time:~0,2%"
set "m=%time:~3,2%"


set /a hsydney=h
set /a msydney=m+30
if %msydney% GTR 59 (
set /a msydney-=60
set /a hsydney+=1
)
if %msydney% LSS 10 set "msydney=0%msydney%"
if %hsydney% GTR 23 set /a hsydney-=24

set /a hbrisbane=h
set /a mbrisbane=m-30
if %mbrisbane% LSS 0 (
set /a mbrisbane+=60
set /a hbrisbane-=1
)
if %mbrisbane% LSS 10 set "mbrisbane=0%mbrisbane%"
if %hbrisbane% LSS 0 set /a hdarwin+=24

set /a hdarwin=h+1
set /a mdarwin=m
if %mdarwin% LSS 10 set "mdarwin=0%mdarwin%"
if %hdarwin% GTR 23 set /a hdarwin-=24

set /a hperth=h-2
set /a mperth=m-30
if %hperth% LSS 0 set /a hperth+=24
if %mperth% LSS 0 (
set /a mperth+=60
set /a hperth-=1
)
if %mperth% LSS 10 set "mperth=0%mperth%"

echo                         ----------------------
echo                          %hperth%:%mperth% 珀斯      -2.5
echo                         ----------------------
echo                          %hbrisbane%:%mbrisbane% 布里斯班  -0.5
echo                         ----------------------
echo                          %h%:%m% 阿德莱德
echo                         ----------------------
echo                          %hsydney%:%msydney% 悉尼      +0.5
echo                         ----------------------
echo                          %hdarwin%:%mdarwin% 达尔文    +1.0
echo                         ----------------------


echo.
echo.
echo v1.0 copyright zycbob@163.com

pause

[ 本帖最后由 zycbob 于 3-12-2009 20:11 编辑 ]
作者: key    时间: 2-12-2009 00:00
没有考虑daylightsaving吧?

写这类时间代码,最好依赖timezone这类高级东西,不然,你顾得了时差就会忘了夏令时。

我不会BAT,只能写个伪代码了:

澳洲主要时区列表 = [悉尼,。。。。,珀斯]
澳洲主要城市时区对应表 = {
  悉尼 => 悉尼
  墨尔本 => 悉尼
  阿德 => 悉尼 (sure?)
  ...
}

要求用户输入所选城市 -> 存入city变量
从"澳洲主要城市进区对应表"中读出对应的时区 -> 存入zone变量
求得当前时间UTC
利用zone计算出时间表达
用字符串显示时间


原帖由 zycbob 于 1-12-2009 19:43 发表
以下代码贴到记事本,保存为time.bat,路过的高手请给点优化的建议,谢谢

@echo off
cls
title 澳洲主要城市时间
:menu
cls
color 0A

echo.
echo                   ================================== ...





欢迎光临 FreeOZ论坛 (https://www.freeoz.org/bbs/) Powered by Discuz! X3.2