LibreOffice Module svl (master) 1
zforfind.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#ifndef INCLUDED_SVL_SOURCE_NUMBERS_ZFORFIND_HXX
21#define INCLUDED_SVL_SOURCE_NUMBERS_ZFORFIND_HXX
22
23#include <com/sun/star/uno/Sequence.hxx>
24#include <rtl/ustring.hxx>
25#include <svl/zforlist.hxx>
26#include <tools/date.hxx>
27#include <memory>
28#include <optional>
29
30class SvNumberformat;
32enum class SvNumFormatType : sal_Int16;
33
34#define SV_MAX_COUNT_INPUT_STRINGS 20 // max count of substrings in input scanner
35
37{
38public:
41
42 void ChangeIntl(); // MUST be called if language changes
43
45 void ChangeNullDate( const sal_uInt16 nDay,
46 const sal_uInt16 nMonth,
47 const sal_Int16 nYear );
48
50 bool IsNumberFormat( const OUString& rString,
51 SvNumFormatType& F_Type,
52 double& fOutNumber,
53 const SvNumberformat* pFormat,
54 SvNumInputOptions eInputOptions);
55
57 short GetDecPos() const { return nDecPos; }
59 sal_uInt16 GetNumericsCount() const { return nNumericsCnt; }
60
62 void SetYear2000( sal_uInt16 nVal ) { nYear2000 = nVal; }
64 sal_uInt16 GetYear2000() const { return nYear2000; }
65
70 bool CanForceToIso8601( DateOrder eDateOrder );
71
73
76 bool HasIso8601Tsep() const { return bIso8601Tsep; }
77
78private:
80 const SvNumberformat* mpFormat; //* The format to compare against, if any
81 std::unique_ptr<OUString[]> pUpperMonthText; //* Array of month names, uppercase
82 std::unique_ptr<OUString[]> pUpperAbbrevMonthText; //* Array of month names, abbreviated, uppercase
83 std::unique_ptr<OUString[]> pUpperGenitiveMonthText; //* Array of genitive month names, uppercase
84 std::unique_ptr<OUString[]> pUpperGenitiveAbbrevMonthText; //* Array of genitive month names, abbreviated, uppercase
85 std::unique_ptr<OUString[]> pUpperPartitiveMonthText; //* Array of partitive month names, uppercase
86 std::unique_ptr<OUString[]> pUpperPartitiveAbbrevMonthText;//* Array of partitive month names, abbreviated, uppercase
87 std::unique_ptr<OUString[]> pUpperDayText; //* Array of day of week names, uppercase
88 std::unique_ptr<OUString[]> pUpperAbbrevDayText; //* Array of day of week names, abbreviated, uppercase
89 OUString aUpperCurrSymbol; //* Currency symbol, uppercase
90 bool bTextInitialized; //* Whether days and months are initialized
91 bool bScanGenitiveMonths; //* Whether to scan an input for genitive months
92 bool bScanPartitiveMonths; //* Whether to scan an input for partitive months
93 std::optional<Date> moNullDate; //* 30Dec1899
94 // Variables for provisional results:
95 OUString sStrArray[SV_MAX_COUNT_INPUT_STRINGS];//* Array of scanned substrings
96 bool IsNum[SV_MAX_COUNT_INPUT_STRINGS]; //* Whether a substring is numeric
97 sal_uInt16 nNums[SV_MAX_COUNT_INPUT_STRINGS]; //* Sequence of offsets to numeric strings
98 sal_uInt16 nStringsCnt; //* Total count of scanned substrings
99 sal_uInt16 nNumericsCnt; //* Count of numeric substrings
100 bool bDecSepInDateSeps; //* True <=> DecSep in {.,-,/,DateSep}
101 sal_uInt8 nMatchedAllStrings; //* Scan...String() matched all substrings,
102
103 // bit mask of nMatched... constants
104 static const sal_uInt8 nMatchedEndString; // 0x01
105 static const sal_uInt8 nMatchedMidString; // 0x02
106 static const sal_uInt8 nMatchedStartString; // 0x04
107 static const sal_uInt8 nMatchedVirgin; // 0x08
108 static const sal_uInt8 nMatchedUsedAsReturn; // 0x10
109
110 int nSign; // Sign of number
111 int nMonth; // Month (1..x) if date
112 // negative => short format
113 short nMonthPos; // 1 = front, 2 = middle
114 // 3 = end
115 int nDayOfWeek; // Temporary (!) day of week (1..7,-1..-7) if date
116 sal_uInt16 nTimePos; // Index of first time separator (+1)
117 short nDecPos; // Index of substring containing "," (+1)
118 bool bNegCheck; // '( )' for negative
119 short nESign; // Sign of exponent
120 short nAmPm; // +1 AM, -1 PM, 0 if none
121 short nLogical; // -1 => False, 1 => True
122 bool mbEraCE; // Era if date, 0 => BCE, 1 => CE (currently only Gregorian)
123 sal_uInt16 nThousand; // Count of group (AKA thousand) separators
124 sal_uInt16 nPosThousandString; // Position of concatenated 000,000,000 string
126 SvNumFormatType eSetType; // Preset Type
127
128 sal_uInt16 nStringScanNumFor; // Fixed strings recognized in
129 // pFormat->NumFor[nNumForStringScan]
130 short nStringScanSign; // Sign resulting of FixString
131 sal_uInt16 nYear2000; // Two-digit threshold
132 // Year as 20xx
133 // default 18
134 // number <= nYear2000 => 20xx
135 // number > nYear2000 => 19xx
136
148
151
162
169 css::uno::Sequence< OUString > sDateAcceptancePatterns;
170
177
183
184 // Copy assignment is forbidden and not implemented.
187
188 void Reset(); // Reset all variables before start of analysis
189
190 void InitText(); // Init of months and days of week
191
192 // Convert string to double.
193 // Only simple unsigned floating point values without any error detection,
194 // decimal separator has to be '.'
195 // If bForceFraction==true the string is taken to be the fractional part
196 // of 0.1234 without the leading 0. (thus being just "1234").
197 static double StringToDouble( std::u16string_view aStr,
198 bool bForceFraction = false );
199
200 // Next number/string symbol
201 static bool NextNumberStringSymbol( const sal_Unicode*& pStr,
202 OUString& rSymbol );
203
204 // Concatenate ,000,23 blocks
205 // in input to 000123
206 bool SkipThousands( const sal_Unicode*& pStr, OUString& rSymbol ) const;
207
208 // Divide numbers/strings into
209 // arrays and variables above.
210 // Leading blanks and blanks
211 // after numbers are thrown away
212 void NumberStringDivision( const OUString& rString );
213
214
218 bool StringContainsWord( const OUString& rWhat,
219 const OUString& rString,
220 sal_Int32 nPos ) const;
221
222 // optimized substring versions
223
224 // Whether rString contains rWhat at nPos
225 static bool StringContains( const OUString& rWhat,
226 const OUString& rString,
227 sal_Int32 nPos )
228 {
229 if (rWhat.isEmpty() || rString.getLength() <= nPos)
230 {
231 return false;
232 }
233 // mostly used with one character
234 if ( rWhat[ 0 ] != rString[ nPos ] )
235 {
236 return false;
237 }
238 return StringContainsImpl( rWhat, rString, nPos );
239 }
240
241 // Whether pString contains rWhat at nPos
242 static bool StringPtrContains( const OUString& rWhat,
243 const sal_Unicode* pString,
244 sal_Int32 nPos ) // nPos MUST be a valid offset from pString
245 {
246 // mostly used with one character
247 if ( rWhat[ 0 ] != pString[ nPos ] )
248 {
249 return false;
250 }
251 return StringPtrContainsImpl( rWhat, pString, nPos );
252 }
253
255 static bool StringContainsImpl( const OUString& rWhat,
256 const OUString& rString,
257 sal_Int32 nPos );
259 static bool StringPtrContainsImpl( const OUString& rWhat,
260 const sal_Unicode* pString,
261 sal_Int32 nPos );
262
263 // Skip a special character
264 static inline bool SkipChar( sal_Unicode c,
265 std::u16string_view rString,
266 sal_Int32& nPos );
267
268 // Skip blank
269 static inline bool SkipBlanks( const OUString& rString,
270 sal_Int32& nPos );
271
272 // Jump over rWhat in rString at nPos
273 static inline bool SkipString( const OUString& rWhat,
274 const OUString& rString,
275 sal_Int32& nPos );
276
277 // Recognizes exactly ,111 as group separator
278 inline bool GetThousandSep( std::u16string_view rString,
279 sal_Int32& nPos,
280 sal_uInt16 nStringPos ) const;
281 // Get boolean value
282 short GetLogical( std::u16string_view rString ) const;
283
284 // Get month and advance string position
285 short GetMonth( const OUString& rString,
286 sal_Int32& nPos );
287
288 // Get day of week and advance string position
289 int GetDayOfWeek( const OUString& rString,
290 sal_Int32& nPos );
291
292 // Get currency symbol and advance string position
293 bool GetCurrency( const OUString& rString,
294 sal_Int32& nPos );
295
296 // Get symbol AM or PM and advance string position
297 bool GetTimeAmPm( const OUString& rString,
298 sal_Int32& nPos );
299
300 // Get decimal separator and advance string position
301 inline bool GetDecSep( std::u16string_view rString,
302 sal_Int32& nPos ) const;
303
304 // Get hundredth seconds separator and advance string position
305 inline bool GetTime100SecSep( std::u16string_view rString,
306 sal_Int32& nPos ) const;
307
308 // Get sign and advance string position
309 // Including special case '('
310 int GetSign( std::u16string_view rString,
311 sal_Int32& nPos );
312
313 // Get sign of exponent and advance string position
314 static short GetESign( std::u16string_view rString,
315 sal_Int32& nPos );
316
317 // Get next number as array offset
318 inline bool GetNextNumber( sal_uInt16& i,
319 sal_uInt16& j ) const;
320
325 bool GetTimeRef( double& fOutNumber, // result as double
326 sal_uInt16 nIndex, // Index of hour in input
327 sal_uInt16 nCnt, // Count of time substrings in input
328 SvNumInputOptions eInputOptions ) const;
329 sal_uInt16 ImplGetDay ( sal_uInt16 nIndex ) const; // Day input, 0 if no match
330 sal_uInt16 ImplGetMonth( sal_uInt16 nIndex ) const; // Month input, zero based return, NumberOfMonths if no match
331 sal_uInt16 ImplGetYear ( sal_uInt16 nIndex ); // Year input, 0 if no match
332
333 // Conversion of date to number
334 bool GetDateRef( double& fDays, // OUT: days diff to null date
335 sal_uInt16& nCounter ); // Count of date substrings
336
337 // Analyze start of string
338 bool ScanStartString( const OUString& rString );
339
340 // Analyze middle substring
341 bool ScanMidString( const OUString& rString,
342 sal_uInt16 nStringPos,
343 sal_uInt16 nCurNumCount );
344
345
346 // Analyze end of string
347 bool ScanEndString( const OUString& rString );
348
349 // Compare rString to substring of array indexed by nString
350 // nString == 0xFFFF => last substring
351 bool ScanStringNumFor( const OUString& rString,
352 sal_Int32 nPos,
353 sal_uInt16 nString,
354 bool bDontDetectNegation = false );
355
356 // if nMatchedAllStrings set nMatchedUsedAsReturn and return true,
357 // else do nothing and return false
358 bool MatchedReturn();
359
363
364 // Main analyzing function
365 bool IsNumberFormatMain( const OUString& rString,
366 const SvNumberformat* pFormat); // number format to match against
367
378 bool IsAcceptedDatePattern( sal_uInt16 nStartPatternAt );
379
387 bool SkipDatePatternSeparator( sal_uInt16 nParticle, sal_Int32 & rPos, bool & rSignedYear );
388
391 sal_uInt16 GetDatePatternNumbers();
392
396 bool IsDatePatternNumberOfType( sal_uInt16 nNumber, sal_Unicode cType );
397
401 sal_uInt32 GetDatePatternOrder();
402
410 DateOrder GetDateOrder( bool bFromFormatIfNoPattern = false );
411
419 bool MayBeIso8601();
420
426 bool MayBeMonthDate();
427
431 bool IsAcceptableIso8601();
432
437 const LocaleDataWrapper* pLoc,
438 DateOrder eDateOrder );
439};
440
441#endif // INCLUDED_SVL_SOURCE_NUMBERS_ZFORFIND_HXX
442
443/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
void InvalidateDateAcceptancePatterns()
Definition: zforfind.cxx:3824
void InitText()
Initialize uppercase months and weekdays.
Definition: zforfind.cxx:3733
bool GetTime100SecSep(std::u16string_view rString, sal_Int32 &nPos) const
Reading a hundredth seconds separator.
Definition: zforfind.cxx:878
sal_uInt16 nStringsCnt
Definition: zforfind.hxx:98
SvNumFormatType eScannedType
Definition: zforfind.hxx:125
bool ScanMidString(const OUString &rString, sal_uInt16 nStringPos, sal_uInt16 nCurNumCount)
Analyze string in the middle All gone => true else => false.
Definition: zforfind.cxx:2564
SvNumFormatType eSetType
Definition: zforfind.hxx:126
ImpSvNumberInputScan(SvNumberFormatter *pFormatter)
Definition: zforfind.cxx:75
static bool StringContainsImpl(const OUString &rWhat, const OUString &rString, sal_Int32 nPos)
DO NOT use directly.
Definition: zforfind.cxx:389
sal_uInt16 GetYear2000() const
get threshold of two-digit year input
Definition: zforfind.hxx:64
static bool StringPtrContainsImpl(const OUString &rWhat, const sal_Unicode *pString, sal_Int32 nPos)
DO NOT use directly.
Definition: zforfind.cxx:403
std::unique_ptr< OUString[]> pUpperGenitiveAbbrevMonthText
Definition: zforfind.hxx:84
sal_uInt16 nDatePatternNumbers
Count of numbers that matched the accepted pattern, if any, else 0.
Definition: zforfind.hxx:182
std::unique_ptr< OUString[]> pUpperAbbrevDayText
Definition: zforfind.hxx:88
sal_uInt16 ImplGetYear(sal_uInt16 nIndex)
30 -> 1930, 29 -> 2029, or 56 -> 1756, 55 -> 1855, ...
Definition: zforfind.cxx:1098
std::unique_ptr< OUString[]> pUpperPartitiveAbbrevMonthText
Definition: zforfind.hxx:86
bool ScanEndString(const OUString &rString)
Analyze the end All gone => true else => false.
Definition: zforfind.cxx:2959
short GetMonth(const OUString &rString, sal_Int32 &nPos)
Converts a string containing a month name (JAN, January) at nPos into the month number (negative if a...
Definition: zforfind.cxx:604
static const sal_uInt8 nMatchedStartString
Definition: zforfind.hxx:106
static const sal_uInt8 nMatchedMidString
Definition: zforfind.hxx:105
bool IsAcceptedDatePattern(sal_uInt16 nStartPatternAt)
Whether input matches locale dependent date acceptance pattern.
Definition: zforfind.cxx:1297
static short GetESign(std::u16string_view rString, sal_Int32 &nPos)
Read a sign with an exponent '+' => 1 '-' => -1 else => 0.
Definition: zforfind.cxx:943
bool HasIso8601Tsep() const
Whether 'T' separator was detected in an ISO 8601 date+time format.
Definition: zforfind.hxx:76
OUString sStrArray[SV_MAX_COUNT_INPUT_STRINGS]
Definition: zforfind.hxx:95
bool GetThousandSep(std::u16string_view rString, sal_Int32 &nPos, sal_uInt16 nStringPos) const
Recognizes exactly ,111 in {3} and {3,2} or ,11 in {3,2} grouping.
Definition: zforfind.cxx:538
short GetDecPos() const
after IsNumberFormat: get decimal position
Definition: zforfind.hxx:57
sal_uInt16 ImplGetMonth(sal_uInt16 nIndex) const
Definition: zforfind.cxx:1077
bool bIso8601Tsep
Whether the 'T' time separator was detected in an ISO 8601 string.
Definition: zforfind.hxx:150
static bool StringContains(const OUString &rWhat, const OUString &rString, sal_Int32 nPos)
Definition: zforfind.hxx:225
void ChangeIntl()
MUST be called if International/Locale is changed.
Definition: zforfind.cxx:3808
bool GetDateRef(double &fDays, sal_uInt16 &nCounter)
Definition: zforfind.cxx:1769
static bool NextNumberStringSymbol(const sal_Unicode *&pStr, OUString &rSymbol)
Definition: zforfind.cxx:214
bool GetNextNumber(sal_uInt16 &i, sal_uInt16 &j) const
i counts string portions, j counts numbers thereof.
Definition: zforfind.cxx:967
static bool SkipBlanks(const OUString &rString, sal_Int32 &nPos)
Skips blanks.
Definition: zforfind.cxx:503
bool IsNumberFormatMain(const OUString &rString, const SvNumberformat *pFormat)
Be sure that the string to be analyzed is already converted to upper case and if it contained native ...
Definition: zforfind.cxx:3391
sal_uInt8 nMatchedAllStrings
Definition: zforfind.hxx:101
css::uno::Sequence< OUString > sDateAcceptancePatterns
Definition: zforfind.hxx:169
bool StringContainsWord(const OUString &rWhat, const OUString &rString, sal_Int32 nPos) const
Whether rString contains word (!) rWhat at nPos.
Definition: zforfind.cxx:429
bool GetTimeRef(double &fOutNumber, sal_uInt16 nIndex, sal_uInt16 nCnt, SvNumInputOptions eInputOptions) const
Converts time -> double (only decimals)
Definition: zforfind.cxx:979
bool IsAcceptableIso8601()
Whether input is acceptable as ISO 8601 date format in the current NfEvalDateFormat setting.
Definition: zforfind.cxx:1197
SvNumberFormatter * pFormatter
Definition: zforfind.hxx:79
static bool StringPtrContains(const OUString &rWhat, const sal_Unicode *pString, sal_Int32 nPos)
Definition: zforfind.hxx:242
sal_uInt8 nMayBeIso8601
State of ISO 8601 detection.
Definition: zforfind.hxx:147
sal_Int32 nAcceptedDatePattern
Input matched this locale dependent date acceptance pattern.
Definition: zforfind.hxx:168
sal_uInt16 nNums[SV_MAX_COUNT_INPUT_STRINGS]
Definition: zforfind.hxx:97
std::unique_ptr< OUString[]> pUpperDayText
Definition: zforfind.hxx:87
bool ScanStartString(const OUString &rString)
Analyze first string All gone => true else => false.
Definition: zforfind.cxx:2371
sal_uInt16 nNumericsCnt
Definition: zforfind.hxx:99
sal_uInt16 nThousand
Definition: zforfind.hxx:123
bool IsNumberFormat(const OUString &rString, SvNumFormatType &F_Type, double &fOutNumber, const SvNumberformat *pFormat, SvNumInputOptions eInputOptions)
convert input string to number
Definition: zforfind.cxx:3844
static bool SkipString(const OUString &rWhat, const OUString &rString, sal_Int32 &nPos)
jump over rWhat in rString at nPos
Definition: zforfind.cxx:523
void SetYear2000(sal_uInt16 nVal)
set threshold of two-digit year input
Definition: zforfind.hxx:62
short GetLogical(std::u16string_view rString) const
Conversion of text to logical value "true" => 1: "false"=> -1: else => 0:
Definition: zforfind.cxx:579
std::unique_ptr< OUString[]> pUpperGenitiveMonthText
Definition: zforfind.hxx:83
bool MayBeMonthDate()
Whether input may be a dd-month-yy format, with month name, not number.
Definition: zforfind.cxx:1215
int GetSign(std::u16string_view rString, sal_Int32 &nPos)
Read a sign including brackets '+' => 1 '-' => -1 u'−' => -1 '(' => -1, bNegCheck = 1 else => 0.
Definition: zforfind.cxx:913
std::unique_ptr< OUString[]> pUpperAbbrevMonthText
Definition: zforfind.hxx:82
sal_uInt16 ImplGetDay(sal_uInt16 nIndex) const
Definition: zforfind.cxx:1060
bool GetDecSep(std::u16string_view rString, sal_Int32 &nPos) const
Read a decimal separator (',') ',' => true else => false.
Definition: zforfind.cxx:854
static const sal_uInt8 nMatchedEndString
Definition: zforfind.hxx:104
static const sal_uInt8 nMatchedVirgin
Definition: zforfind.hxx:107
bool IsDatePatternNumberOfType(sal_uInt16 nNumber, sal_Unicode cType)
Whether numeric string nNumber is of type cType in accepted date pattern, 'Y', 'M' or 'D'.
Definition: zforfind.cxx:1598
bool SkipDatePatternSeparator(sal_uInt16 nParticle, sal_Int32 &rPos, bool &rSignedYear)
Sets (not advances!) rPos to sStrArray[nParticle].getLength() if string matches separator in pattern ...
Definition: zforfind.cxx:1528
static bool SkipChar(sal_Unicode c, std::u16string_view rString, sal_Int32 &nPos)
Skips the supplied char.
Definition: zforfind.cxx:488
OUString aUpperCurrSymbol
Definition: zforfind.hxx:89
std::unique_ptr< OUString[]> pUpperMonthText
Definition: zforfind.hxx:81
bool SkipThousands(const sal_Unicode *&pStr, OUString &rSymbol) const
Definition: zforfind.cxx:288
DateOrder GetDateOrder(bool bFromFormatIfNoPattern=false)
Obtain date format order, from accepted date pattern if available or otherwise the locale's default o...
Definition: zforfind.cxx:1646
void NumberStringDivision(const OUString &rString)
Definition: zforfind.cxx:357
static const sal_uInt8 nMatchedUsedAsReturn
Definition: zforfind.hxx:108
sal_uInt16 GetDatePatternNumbers()
Returns count of numbers in accepted date pattern.
Definition: zforfind.cxx:1587
static double StringToDouble(std::u16string_view aStr, bool bForceFraction=false)
Only simple unsigned floating point values without any error detection, decimal separator has to be '...
Definition: zforfind.cxx:156
bool MayBeIso8601()
Whether input may be an ISO 8601 date format, yyyy-mm-dd...
Definition: zforfind.cxx:1121
sal_uInt16 nPosThousandString
Definition: zforfind.hxx:124
sal_uInt32 GetDatePatternOrder()
Obtain order of accepted date pattern coded as, for example, ('D'<<16)|('M'<<8)|'Y'.
Definition: zforfind.cxx:1622
bool IsNum[SV_MAX_COUNT_INPUT_STRINGS]
Definition: zforfind.hxx:96
sal_uInt16 nDatePatternStart
If input matched a date acceptance pattern that starts at input particle sStrArray[nDatePatternStart]...
Definition: zforfind.hxx:176
sal_uInt16 nTimePos
Definition: zforfind.hxx:116
int GetDayOfWeek(const OUString &rString, sal_Int32 &nPos)
Converts a string containing a DayOfWeek name (Mon, Monday) at nPos into the DayOfWeek number + 1 (ne...
Definition: zforfind.cxx:737
sal_uInt16 nStringScanNumFor
Definition: zforfind.hxx:128
bool GetTimeAmPm(const OUString &rString, sal_Int32 &nPos)
Reading the time period specifier (AM/PM) for the 12 hour clock.
Definition: zforfind.cxx:824
const SvNumberformat * mpFormat
Definition: zforfind.hxx:80
bool CanForceToIso8601(DateOrder eDateOrder)
Whether input can be forced to ISO 8601 format.
Definition: zforfind.cxx:1146
sal_uInt16 nYear2000
Definition: zforfind.hxx:131
std::unique_ptr< OUString[]> pUpperPartitiveMonthText
Definition: zforfind.hxx:85
bool GetCurrency(const OUString &rString, sal_Int32 &nPos)
Reading a currency symbol '$' => true else => false.
Definition: zforfind.cxx:774
std::optional< Date > moNullDate
Definition: zforfind.hxx:93
void ChangeNullDate(const sal_uInt16 nDay, const sal_uInt16 nMonth, const sal_Int16 nYear)
set reference date for offset calculation
Definition: zforfind.cxx:3833
bool MatchedReturn()
Return true or false depending on the nMatched... state and remember usage.
Definition: zforfind.cxx:3719
ImpSvNumberInputScan & operator=(const ImpSvNumberInputScan &)=delete
ImpSvNumberInputScan(const ImpSvNumberInputScan &)=delete
sal_uInt8 nMayBeMonthDate
State of dd-month-yy or yy-month-dd detection, with month name.
Definition: zforfind.hxx:161
bool ScanStringNumFor(const OUString &rString, sal_Int32 nPos, sal_uInt16 nString, bool bDontDetectNegation=false)
Definition: zforfind.cxx:3277
LongDateOrder GetMiddleMonthLongDateOrder(bool bFormatTurn, const LocaleDataWrapper *pLoc, DateOrder eDateOrder)
If month name in the middle was parsed, get the corresponding LongDateOrder in GetDateRef().
Definition: zforfind.cxx:1723
sal_uInt16 GetNumericsCount() const
after IsNumberFormat: get count of numeric substrings in input string
Definition: zforfind.hxx:59
sal_uInt16 nPos
DateOrder
LongDateOrder
unsigned char sal_uInt8
sal_uInt16 sal_Unicode
#define SV_MAX_COUNT_INPUT_STRINGS
Definition: zforfind.hxx:34
SvNumFormatType
MAX_ULONG.
Definition: zforlist.hxx:50
SvNumInputOptions
Input options to be used with IsNumberFormat()
Definition: zforlist.hxx:370