// CodeGear C++Builder
// Copyright (c) 1995, 2021 by Embarcadero Technologies, Inc.
// All rights reserved

// (DO NOT EDIT: machine generated header) 'ABSDateFormat.pas' rev: 35.00 (Windows)

#ifndef AbsdateformatHPP
#define AbsdateformatHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#pragma pack(push,8)
#include <System.hpp>
#include <SysInit.hpp>
#include <System.SysUtils.hpp>
#include <System.Math.hpp>
#include <Winapi.Windows.hpp>
#include <ABSExcept.hpp>
#include <ABSTypes.hpp>
#include <ABSConst.hpp>

//-- user supplied -----------------------------------------------------------

namespace Absdateformat
{
//-- forward type declarations -----------------------------------------------
struct TDateFormatToken;
class DELPHICLASS TDateFormater;
//-- type declarations -------------------------------------------------------
enum DECLSPEC_DENUM TDateFormatType : unsigned char { dfYYYY, dfYY, dfYEAR, dfQ, dfMONTH, dfMON, dfMM, dfM, dfRM, dfDDD, dfDD, dfDAY, dfDY, dfDW, dfD, dfHH12, dfHH24, dfHH, dfH12, dfH24, dfH, dfNN, dfN, dfSS, dfS, dfAMPM, dfText };

typedef System::StaticArray<System::UnicodeString, 26> Absdateformat__1;

struct DECLSPEC_DRECORD TDateFormatToken
{
public:
	TDateFormatType TokenType;
	System::UnicodeString Text;
};


class PASCALIMPLEMENTATION TDateFormater : public System::TObject
{
	typedef System::TObject inherited;
	
	
private:
	typedef System::DynamicArray<TDateFormatToken> _TDateFormater__1;
	
	
private:
	_TDateFormater__1 FDateFormat;
	void __fastcall ParseDateFormat(const System::UnicodeString DateFormatStr);
	TDateFormatType __fastcall GetReservedWord(const System::UnicodeString Text);
	
public:
	__fastcall TDateFormater(System::UnicodeString DateFormat);
	__fastcall virtual ~TDateFormater();
	System::TDateTime __fastcall ToDate(System::UnicodeString str);
	HIDESBASE System::UnicodeString __fastcall ToString(System::TDateTime dt);
	int __fastcall GetStringMaxSize();
	Abstypes::TABSAdvancedFieldType __fastcall GetDataType();
	System::UnicodeString __fastcall DebugGetTotenList();
};


//-- var, const, procedure ---------------------------------------------------
static const System::Int8 DateFormatReservedWordsCount = System::Int8(0x1a);
extern DELPHI_PACKAGE Absdateformat__1 DateFormatReservedWords;
#define Delimeters L"-/,.;:"
static const System::Word TwoDigitYearCenturyWindow = System::Word(0x78a);
extern DELPHI_PACKAGE int DateFormatReservedWordsMaxLength;
}	/* namespace Absdateformat */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_ABSDATEFORMAT)
using namespace Absdateformat;
#endif
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// AbsdateformatHPP
