<?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="textsbasicshared03030106xml" indexer="include" status="PUBLISH">
<title id="tit" xml-lang="en-US">Year Function [Runtime]</title>
<filename>/text/sbasic/shared/03030106.xhp</filename>
</topic>
<history>
<created date="2003-10-31T00:00:00">Sun Microsystems, Inc.</created>
<lastedited date="2004-08-24T14:57:11">converted from old format - fpe</lastedited>
</history>
</meta>
<body>
<section id="year">
<bookmark xml-lang="en-US" branch="index" id="bm_id3148664"><bookmark_value>Year function</bookmark_value>
</bookmark>
<paragraph role="heading" id="hd_id3148664" xml-lang="en-US" level="1" l10n="U" oldref="1"><link href="text/sbasic/shared/03030106.xhp" name="Year Function [Runtime]">Year Function [Runtime]</link></paragraph>
<paragraph role="paragraph" id="par_id3149655" xml-lang="en-US" l10n="U" oldref="2">Returns the year from a serial date number that is generated by the DateSerial or the DateValue function.</paragraph>
</section>
<paragraph role="heading" id="hd_id3154125" xml-lang="en-US" level="2" l10n="U" oldref="3">Syntax:</paragraph>
<paragraph role="paragraph" id="par_id3147229" xml-lang="en-US" l10n="U" oldref="4">Year (Number)</paragraph>
<paragraph role="heading" id="hd_id3154685" xml-lang="en-US" level="2" l10n="U" oldref="5">Return value:</paragraph>
<paragraph role="paragraph" id="par_id3153970" xml-lang="en-US" l10n="U" oldref="6">Integer</paragraph>
<paragraph role="heading" id="hd_id3150440" xml-lang="en-US" level="2" l10n="U" oldref="7">Parameters:</paragraph>
<paragraph role="paragraph" id="par_id3163712" xml-lang="en-US" l10n="U" oldref="8">
<emph>Number:</emph> Integer expression that contains the serial date number that is used to calculate the year.</paragraph>
<paragraph role="paragraph" id="par_id3152596" xml-lang="en-US" l10n="U" oldref="9">This function is the opposite of the <emph>DateSerial </emph>function, and returns the year of a serial date. For example, the expression:</paragraph>
<paragraph role="paragraph" id="par_id3154319" xml-lang="en-US" l10n="U" oldref="10">Print Year(DateSerial(1994, 12, 20))</paragraph>
<paragraph role="paragraph" id="par_id3149483" xml-lang="en-US" l10n="U" oldref="11">returns the value 1994.</paragraph>
<embed href="text/sbasic/shared/00000003.xhp#errorcode"/>
<embed href="text/sbasic/shared/00000003.xhp#err5"/>
<paragraph role="heading" id="hd_id3146985" xml-lang="en-US" level="2" l10n="U" oldref="12">Example:</paragraph>
<paragraph role="paragraph" id="par_id3153952" xml-lang="en-US" l10n="U" oldref="13">Sub ExampleYear</paragraph>
<paragraph role="paragraph" id="par_id3153363" xml-lang="en-US" l10n="U" oldref="14">MsgBox "" &amp; Year(Now) ,64,"Current year"</paragraph>
<paragraph role="paragraph" id="par_id3145274" xml-lang="en-US" l10n="U" oldref="15">End sub</paragraph>
</body>
</helpdocument>
