2010-04-07 217 views
1

我试图找到一种方法来计算我的,时区(中部)和(太平洋;山;东部)之间的天数。只是不知道从哪里开始。我的标准如下:Excel问题:我需要一个日期和时间公式来转换时区

单元格C5:C100将是这种格式的时间戳:3/18/2010 23:45但是不同的日期和时间。 单元格D5:D100将以文本形式对应的时区:太平洋;山;东;中央。

单元格F5将是需要天数的持续时间。

只是不知道如何写公式给我什么,我正在寻找。我很欣赏任何援助提前。由于

回答

1

Time Zones And Daylight Savings Time

无论VBA也不VB6提供任何 本地函数与时间 区,格林威治标准时间(GMT,也称为 UTC),或夏令时工作。 要使用这些值,您必须使用 某些Windows应用程序 编程接口(API) 函数。本页面描述了这些 API函数以及如何在您的VBA代码中使用它们的 。

0

最简单的方法可能是一个嵌套的IF公式:

=IF(D22="Pacific",(1/24*2),IF(D22="Mountain",(1/24),IF(D22="Eastern",-(1/24),0)))

或者使用LOOKUP函数返回相同的:

=(C5+(1/24*LOOKUP(D5,{"Central","Eastern","Mountain","Pacific"},{-2,-3,-1,0})))-C5

或者,你可以创建一个UDF采用当地日期/时间并从时区的文本表示中计算出太平洋日期/时间:

Function TimeDifference(LocalTime As Range, TimeZone As Range) As Date 
    Application.Volatile 
    Dim TimeOffset As Long 

    Select Case TimeZone 
     Case "Mountain" 
      TimeOffset = -1 
     Case "Central" 
      TimeOffset = -2 
     Case "Eastern" 
      TimeOffset = -3 
     Case Else 
      TimeOffset = 0 
    End Select 
    TimeDifference = (1/24 * TimeOffset) 
End Function 

你会从F列像这样调用这个:

=TIMEDIFFERENCE(C5,D5)

相关问题