<?xml version="1.0" encoding="UTF-8"?>



<!--***********************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 ***********************************************************-->




		<helpdocument version="1.0">
<meta>
<topic id="textscalc01func_hourxml" indexer="include" status="PUBLISH">
<title id="tit" xml-lang="en-US">HOUR </title>
<filename>/text/scalc/01/func_hour.xhp</filename>
</topic>
</meta>
<body>
<bookmark xml-lang="en-US" branch="index" id="bm_id3154725"><bookmark_value>HOUR function</bookmark_value>
</bookmark>
<bookmark xml-lang="en-US" branch="hid/SC_HID_FUNC_STUNDE" id="bm_id3152469" localize="false"/><paragraph role="heading" id="hd_id3154725" xml-lang="en-US" level="2" l10n="U" oldref="96"><variable id="hour"><link href="text/scalc/01/func_hour.xhp">HOUR</link>
</variable></paragraph>
<paragraph role="paragraph" id="par_id3149747" xml-lang="en-US" l10n="U" oldref="97"><ahelp hid="HID_FUNC_STUNDE">Returns the hour for a given time value.</ahelp> The hour is returned as an integer between 0 and 23.</paragraph>
<paragraph role="heading" id="hd_id3149338" xml-lang="en-US" level="3" l10n="U" oldref="98">Syntax</paragraph>
<paragraph role="code" id="par_id3150637" xml-lang="en-US" l10n="U" oldref="99">HOUR(Number)</paragraph>
<paragraph role="paragraph" id="par_id3147547" xml-lang="en-US" l10n="U" oldref="100">
<emph>Number</emph>, as a time value, is a decimal, for which the hour is to be returned.</paragraph>
<paragraph role="heading" id="hd_id3153264" xml-lang="en-US" level="3" l10n="U" oldref="101">Examples</paragraph>
<paragraph role="paragraph" id="par_id3159215" xml-lang="en-US" l10n="U" oldref="103">
<item type="input">=HOUR(NOW())</item> returns the current hour</paragraph>
<paragraph role="paragraph" id="par_id3145152" xml-lang="en-US" l10n="U" oldref="104">
<item type="input">=HOUR(C4)</item> returns 17 if the contents of C4 = <item type="input">17:20:00</item>.</paragraph>
<embed href="text/shared/00/00000001.xhp#siehe"/>
<paragraph role="paragraph" id="par_id3154188" xml-lang="en-US" l10n="U" oldref="105"><link href="text/scalc/01/04060102.xhp" name="YEAR">YEAR</link>, <link href="text/scalc/01/04060102.xhp" name="NOW">NOW</link>, <link href="text/scalc/01/04060102.xhp" name="MINUTE">MINUTE</link>, <link href="text/scalc/01/04060102.xhp" name="MONTH">MONTH</link>, <link href="text/scalc/01/04060102.xhp" name="DAY">DAY</link>, <link href="text/scalc/01/04060102.xhp" name="WEEKDAY">WEEKDAY</link>.</paragraph>
</body>
</helpdocument>
