Bagikan melalui


Kelas COleDateTime

Merangkum DATE jenis data yang digunakan dalam otomatisasi OLE.

Sintaks

class COleDateTime

Anggota

Konstruktor Publik

Nama Deskripsi
COleDateTime::COleDateTime Membuat COleDateTime objek.

Metode Publik

Nama Deskripsi
COleDateTime::Format Menghasilkan representasi string yang diformat dari COleDateTime objek.
COleDateTime::GetAsDBTIMESTAMP Panggil metode ini untuk mendapatkan waktu dalam COleDateTime objek sebagai DBTIMESTAMP struktur data.
COleDateTime::GetAsSystemTime Panggil metode ini untuk mendapatkan waktu dalam COleDateTime objek sebagai struktur data SYSTEMTIME .
COleDateTime::GetAsUDATE Panggil metode ini untuk mendapatkan waktu dalam COleDateTime sebagai UDATE struktur data.
COleDateTime::GetCurrentTime COleDateTime Membuat objek yang mewakili waktu saat ini (fungsi anggota statis).
COleDateTime::GetDay Mengembalikan hari yang diwakili objek ini COleDateTime (1 - 31).
COleDateTime::GetDayOfWeek Mengembalikan hari dalam seminggu yang diwakili objek ini COleDateTime (Minggu = 1).
COleDateTime::GetDayOfYear Mengembalikan hari dalam setahun yang diwakili objek ini COleDateTime (Jan 1 = 1).
COleDateTime::GetHour Mengembalikan jam yang diwakili objek ini COleDateTime (0 - 23).
COleDateTime::GetMinute Mengembalikan menit yang diwakili objek ini COleDateTime (0 - 59).
COleDateTime::GetMonth Mengembalikan bulan yang diwakili objek ini COleDateTime (1 - 12).
COleDateTime::GetSecond Mengembalikan detik yang diwakili objek ini COleDateTime (0 - 59).
COleDateTime::GetStatus Mendapatkan status (validitas) objek ini COleDateTime .
COleDateTime::GetYear Mengembalikan tahun yang diwakili objek ini COleDateTime .
COleDateTime::P arseDateTime Membaca nilai tanggal/waktu dari string dan menetapkan nilai COleDateTime.
COleDateTime::SetDate Mengatur nilai objek ini COleDateTime ke nilai tanggal-saja yang ditentukan.
COleDateTime::SetDateTime Mengatur nilai objek ini COleDateTime ke nilai tanggal/waktu yang ditentukan.
COleDateTime::SetStatus Menyetel status (validitas) objek ini COleDateTime .
COleDateTime::SetTime Mengatur nilai objek ini COleDateTime ke nilai khusus waktu yang ditentukan.

Operator Publik

Nama Deskripsi
COleDateTime::operator ==, COleDateTime::operator <, dll. Bandingkan dua COleDateTime nilai.
COleDateTime::operator +, COleDateTime::operator - Tambahkan dan kurangi COleDateTime nilai.
COleDateTime::operator +=, COleDateTime::operator -= Tambahkan dan kurangi COleDateTime nilai dari objek ini COleDateTime .
COleDateTime::operator = COleDateTime Menyalin nilai.
COleDateTime::operator DATE, COleDateTime::operator Date* COleDateTime Mengonversi nilai menjadi DATE atau DATE*.

Anggota Data Publik

Nama Deskripsi
COleDateTime::m_dt Berisi yang mendasar DATE untuk objek ini COleDateTime .
COleDateTime::m_status Berisi status objek ini COleDateTime .

Keterangan

COleDateTime tidak memiliki kelas dasar.

Ini adalah salah satu jenis yang mungkin untuk jenis data VARIAN otomatisasi OLE. Nilai COleDateTime menunjukkan nilai tanggal dan waktu absolut.

Jenis ini DATE diimplementasikan sebagai nilai floating-point. Hari diukur dari 30 Desember 1899, pada tengah malam. Tabel berikut ini memperlihatkan beberapa tanggal dan nilai terkaitnya:

Tanggal Nilai
29 Desember 1899, tengah malam -1.0
29 Desember 1899, 6 A.M -1,25
30 Desember 1899, tengah malam 0.0
31 Desember 1899, tengah malam 1.0
1 Januari 1900, 6 A.M. 2,25

Perhatian

Dalam tabel di atas, meskipun nilai hari menjadi negatif sebelum tengah malam pada 30 Desember 1899, nilai time-of-day tidak. Misalnya, pukul 06.00 selalu diwakili oleh nilai pecahan 0,25 terlepas dari apakah bilangan bulat yang mewakili hari tersebut positif (setelah 30 Desember 1899) atau negatif (sebelum 30 Desember 1899). Ini berarti bahwa perbandingan titik mengambang sederhana akan secara keliru mengurutkan COleDateTime yang mewakili pukul 06.00 pada 29/12/1899 sebagai lebih lambat dari yang mewakili pukul 07.00 pada hari yang sama.

Kelas ini COleDateTime menangani tanggal dari 1 Januari 100, hingga 31 Desember 9999. Kelas ini COleDateTime menggunakan kalender Gregorian; tidak mendukung tanggal Julian. COleDateTime mengabaikan Daylight Saving Time. (Lihat Tanggal dan Waktu: Dukungan Automation.)

Catatan

Anda dapat menggunakan %y format untuk mengambil tahun dua digit hanya untuk tanggal mulai dari 1900. Jika Anda menggunakan %y format pada tanggal sebelum 1900, kode akan menghasilkan kegagalan ASSERT.

Jenis ini juga digunakan untuk mewakili nilai hanya tanggal atau waktu saja. Menurut konvensi, tanggal 0 (30 Desember 1899) digunakan untuk nilai khusus waktu dan waktu 00:00 (tengah malam) digunakan untuk nilai hanya tanggal.

Jika Anda membuat COleDateTime objek dengan menggunakan tanggal kurang dari 100, tanggal diterima, tetapi panggilan berikutnya ke GetYear, , GetMonth, GetDayGetHour, GetMinute, dan GetSecond gagal dan kembali -1. Sebelumnya, Anda dapat menggunakan tanggal dua digit, tetapi tanggal harus 100 atau lebih besar di MFC 4.2 dan yang lebih baru.

Untuk menghindari masalah, tentukan tanggal empat digit. Contohnya:

COleDateTime mytime(1996, 1, 1, 0, 0, 0); 

Operasi aritmatika dasar untuk COleDateTime nilai menggunakan kelas pendamping COleDateTimeSpan. COleDateTimeSpan nilai menentukan interval waktu. Hubungan antara kelas-kelas ini mirip dengan yang antara CTime dan CTimeSpan.

Untuk informasi selengkapnya tentang COleDateTime kelas dan COleDateTimeSpan , lihat artikel Tanggal dan Waktu: Dukungan Automation.

Persyaratan

Header: ATLComTime.h

Operator Relasional COleDateTime

Operator perbandingan.

bool operator==(const COleDateTime& date) const throw();
bool operator!=(const COleDateTime& date) const throw();
bool operator<(const COleDateTime& date) const throw();
bool operator>(const COleDateTime& date) const throw();
bool operator<=(const COleDateTime& date) const throw();
bool operator>=(const COleDateTime& date) const throw();

Parameter

date
Objek COleDateTime yang akan dibandingkan.

Keterangan

Catatan

ATLASSERT akan terjadi jika salah satu dari dua operand tidak valid.

Contoh

COleDateTime dateOne(1995, 3, 15, 12, 0, 0); // 15 March 1995 12 noon
COleDateTime dateTwo(dateOne);             // 15 March 1995 12 noon
BOOL b;
b = dateOne == dateTwo;                    // TRUE
b = dateOne < dateTwo;                     // FALSE, same value
b = dateOne > dateTwo;                     // FALSE, same value
b = dateOne <= dateTwo;                    // TRUE, same value
b = dateOne >= dateTwo;                    // TRUE, same value   

dateTwo.SetStatus(COleDateTime::invalid);
b = dateOne == dateTwo;                    // FALSE, different status
b = dateOne != dateTwo;                    // TRUE, different status

Operator >=, <=, >, dan <, akan menegaskan jika COleDateTime objek diatur ke null.

VARIANT v = {};
v.vt = VT_NULL;
COleDateTime t1(v);
COleDateTime t2(v);
t1 = t1 + t2;

COleDateTime::COleDateTime

Membuat COleDateTime objek.

COleDateTime() throw();
COleDateTime(const VARIANT& varSrc) throw();
COleDateTime(DATE dtSrc) throw();
COleDateTime(time_t timeSrc) throw();
COleDateTime(__time64_t timeSrc) throw();
COleDateTime(const SYSTEMTIME& systimeSrc) throw();
COleDateTime(const FILETIME& filetimeSrc) throw();

COleDateTime(int nYear,
    int nMonth,
    int nDay,
    int nHour,
    int nMin,
    int nSec) throw();

COleDateTime(WORD wDosDate,
    WORD wDosTime) throw();
COleDateTime(const DBTIMESTAMP& timeStamp) throw();

Parameter

dateSrc
Objek yang COleDateTime sudah ada untuk disalin ke dalam objek baru COleDateTime .

varSrc
Struktur data yang ada VARIANT (mungkin objek COleVariant ) untuk dikonversi ke nilai tanggal/waktu (VT_DATE) dan disalin ke objek baru COleDateTime .

dtSrc
Nilai tanggal/waktu (DATE) yang akan disalin ke dalam objek baru COleDateTime .

timeSrc
Nilai time_t atau __time64_t yang akan dikonversi ke nilai tanggal/waktu dan disalin ke objek baru COleDateTime .

systimeSrc
Struktur SYSTEMTIME yang akan dikonversi ke nilai tanggal/waktu dan disalin ke objek baru COleDateTime .

filetimeSrc
Struktur FILETIME yang akan dikonversi ke nilai tanggal/waktu dan disalin ke objek baru COleDateTime . Menggunakan FILETIME Universal Coordinated Time (UTC), jadi jika Anda melewati waktu lokal dalam struktur, hasil Anda akan salah. Lihat Waktu File di Windows SDK untuk informasi selengkapnya.

nYear, nMonth, nDay, nHour, nMin, nSec
Tunjukkan nilai tanggal dan waktu yang akan disalin ke dalam objek baru COleDateTime .

wDosDate, wDosTime
Nilai tanggal dan waktu MS-DOS yang akan dikonversi ke nilai tanggal/waktu dan disalin ke objek baru COleDateTime .

Timestamp
Referensi ke struktur DBTimeStamp yang berisi waktu lokal saat ini.

Keterangan

Semua konstruktor ini membuat objek baru COleDateTime yang diinisialisasi ke nilai yang ditentukan. Tabel berikut ini memperlihatkan rentang yang valid untuk setiap komponen tanggal dan waktu:

Komponen tanggal/waktu Rentang yang valid
tahun 100 - 9999
month 0 - 12
hari 0 - 31
jam 0 - 23
menit 0 - 59
detik 0 - 59

Perhatikan bahwa batas atas aktual untuk komponen hari bervariasi berdasarkan komponen bulan dan tahun. Untuk detailnya, lihat SetDate fungsi atau SetDateTime anggota.

Berikut ini adalah deskripsi singkat dari setiap konstruktor:

  • COleDateTime() Membuat objek yang COleDateTime diinisialisasi ke 0 (tengah malam, 30 Desember 1899).

  • COleDateTime(dateSrc ) Membuat COleDateTime objek dari objek yang adaCOleDateTime.

  • COleDateTime(varSrc ) Membuat COleDateTime objek. Mencoba mengonversi VARIANT struktur atau objek COleVariant menjadi nilai tanggal/waktu ( VT_DATE) . Jika konversi ini berhasil, nilai yang dikonversi disalin ke objek baru COleDateTime . Jika tidak, nilai COleDateTime objek diatur ke 0 (tengah malam, 30 Desember 1899) dan statusnya menjadi tidak valid.

  • COleDateTime(dtSrc ) Membuat COleDateTime objek dari DATE nilai.

  • COleDateTime(timeSrc ) Membuat COleDateTime objek dari time_t nilai.

  • COleDateTime(systimeSrc ) Membuat COleDateTime objek dari SYSTEMTIME nilai.

  • COleDateTime(filetimeSrc ) Membuat COleDateTime objek dari FILETIME nilai. . Menggunakan FILETIME Universal Coordinated Time (UTC), jadi jika Anda melewati waktu lokal dalam struktur, hasil Anda akan salah. Untuk informasi selengkapnya, lihat Waktu File di Windows SDK.

  • COleDateTime(nYear, , nMonth, nHournDay, nMin, , nSec ) Membangun COleDateTime objek dari nilai numerik yang ditentukan.

  • COleDateTime(wDosDate, ) wDosTime Membuat COleDateTime objek dari nilai tanggal dan waktu MS-DOS yang ditentukan.

Untuk informasi selengkapnya tentang time_t jenis data, lihat fungsi waktu di Referensi Pustaka Run-Time.

Untuk informasi selengkapnya, lihat struktur SYSTEMTIME dan FILETIME di Windows SDK.

Untuk informasi selengkapnya tentang batas COleDateTime nilai, lihat artikel Tanggal dan Waktu: Dukungan Automation.

Catatan

Konstruktor yang menggunakan DBTIMESTAMP parameter hanya tersedia ketika OLEDB.h disertakan.

Contoh

time_t osBinaryTime;   // C run-time time (defined in <time.h>)
time(&osBinaryTime);   // Get the current time from the 
                     // operating system.

COleDateTime time1;   // initialized to 00:00am, 30 December 1899
                     // (and m_nStatus is valid!)

COleDateTime time2 = time1; // Copy constructor
COleDateTime time3(osBinaryTime);   // from time_t
COleDateTime time4(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999

SYSTEMTIME sysTime;   // Win32 time information
GetSystemTime(&sysTime);

COleDateTime time5(sysTime);    

COleDateTime::Format

Membuat representasi berformat dari nilai tanggal/waktu.

CString Format(DWORD dwFlags = 0,  LCID lcid = LANG_USER_DEFAULT) const;
CString Format(LPCTSTR lpszFormat) const;
CString Format(UINT nFormatID) const;

Parameter

dwFlags
Menunjukkan salah satu bendera lokal berikut:

  • LOCALE_NOUSEROVERRIDE Gunakan pengaturan lokal default sistem, bukan pengaturan pengguna kustom.

  • VAR_TIMEVALUEONLY Abaikan bagian tanggal selama penguraian.

  • VAR_DATEVALUEONLY Abaikan bagian waktu selama penguraian.

Icid
Menunjukkan ID lokal yang akan digunakan untuk konversi. Untuk informasi selengkapnya tentang pengidentifikasi bahasa, lihat Pengidentifikasi Bahasa.

lpszFormat
String pemformatan yang mirip printf dengan string pemformatan. Setiap kode pemformatan, yang didahului oleh tanda persen ( %) digantikan oleh komponen yang COleDateTime sesuai. Karakter lain dalam string pemformatan disalin tidak berubah ke string yang dikembalikan. Untuk informasi selengkapnya, lihat strftime fungsi run-time. Nilai dan arti kode pemformatan untuk Format adalah:

  • %H Jam dalam hari ini

  • %M Menit dalam jam saat ini

  • %S Detik dalam menit saat ini

  • %% Tanda persen

nFormatID
ID sumber daya untuk string kontrol format.

Tampilkan Nilai

Yang CString berisi nilai tanggal/waktu yang diformat.

Keterangan

Jika status objek ini COleDateTime null, nilai yang dikembalikan adalah string kosong. Jika status tidak valid, string pengembalian ditentukan oleh sumber daya string ATL_IDS_DATETIME_INVALID.

Deskripsi singkat tentang tiga formulir untuk fungsi ini berikut:

Format( dwFlags, icid)
Formulir ini memformat nilai dengan menggunakan spesifikasi bahasa (ID lokal) untuk tanggal dan waktu. Menggunakan parameter default, formulir ini akan mencetak tanggal dan waktu, kecuali bagian waktunya adalah 0 (tengah malam), dalam hal ini akan mencetak hanya tanggal, atau bagian tanggal adalah 0 (30 Desember 1899), dalam hal ini akan mencetak hanya waktu. Jika nilai tanggal/waktu adalah 0 (30 Desember 1899, tengah malam), formulir ini dengan parameter default akan mencetak tengah malam.

Format( lpszFormat)
Formulir ini memformat nilai dengan menggunakan string format yang berisi kode pemformatan khusus yang didahului oleh tanda persen (%), seperti dalam printf. String pemformatan diteruskan sebagai parameter ke fungsi . Untuk informasi selengkapnya tentang kode pemformatan, lihat strftime, wcsftime di Referensi Pustaka Run-Time.

Format( nFormatID)
Formulir ini memformat nilai dengan menggunakan string format yang berisi kode pemformatan khusus yang didahului oleh tanda persen (%), seperti dalam printf. String pemformatan adalah sumber daya. ID sumber daya string ini diteruskan sebagai parameter . Untuk informasi selengkapnya tentang kode pemformatan, lihat strftime, wcsftime di Referensi Pustaka Run-Time.

Contoh

COleDateTime t(1999, 3, 19, 22, 15, 0);

CString str = t.Format(_T("%A, %B %d, %Y"));
ASSERT(str == _T("Friday, March 19, 1999"));   

COleDateTime::GetAsDBTIMESTAMP

Panggil metode ini untuk mendapatkan waktu dalam COleDateTime objek sebagai DBTIMESTAMP struktur data.

bool GetAsDBTIMESTAMP(DBTIMESTAMP& timeStamp) const throw();

Parameter

Timestamp
Referensi ke struktur DBTimeStamp .

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0.

Keterangan

Menyimpan waktu yang dihasilkan dalam struktur timeStamp yang dirujuk. Struktur DBTIMESTAMP data yang diinisialisasi oleh fungsi ini akan membuat anggotanya fraction diatur ke nol.

Contoh

COleDateTime t = COleDateTime::GetCurrentTime();
DBTIMESTAMP ts;
t.GetAsDBTIMESTAMP(ts); // retrieves the time in t into the ts structure

COleDateTime::GetAsSystemTime

Panggil metode ini untuk mendapatkan waktu dalam COleDateTime objek sebagai SYSTEMTIME struktur data.

bool GetAsSystemTime(SYSTEMTIME& sysTime) const throw();

Parameter

sysTime
Referensi ke struktur SYSTEMTIME untuk menerima nilai tanggal/waktu yang dikonversi dari COleDateTime objek.

Tampilkan Nilai

Mengembalikan TRUE jika berhasil; FALSE jika konversi gagal, atau jika COleDateTime objek null atau tidak valid.

Keterangan

GetAsSystemTimemenyimpan waktu yang dihasilkan dalam objek sysTime yang dirujuk. Struktur SYSTEMTIME data yang diinisialisasi oleh fungsi ini akan membuat anggotanya wMilliseconds diatur ke nol.

Untuk informasi selengkapnya tentang informasi status yang COleDateTime disimpan dalam objek, lihat GetStatus.

COleDateTime::GetAsUDATE

Panggil metode ini untuk mendapatkan waktu dalam COleDateTime objek sebagai UDATE struktur data.

bool GetAsUDATE(UDATE& uDate) const throw();

Parameter

uDate
Referensi ke UDATE struktur untuk menerima nilai tanggal/waktu yang dikonversi dari COleDateTime objek.

Tampilkan Nilai

Mengembalikan TRUE jika berhasil; FALSE jika konversi gagal, atau jika COleDateTime objek null atau tidak valid.

Keterangan

Struktur UDATE mewakili tanggal "tidak dikemas".

COleDateTime::GetCurrentTime

Panggil fungsi anggota statis ini untuk mengembalikan nilai tanggal/waktu saat ini.

static COleDateTime WINAPI GetCurrentTime() throw();

Contoh

// example for COleDateTime::GetCurrentTime
COleDateTime dateTest;
   // dateTest value = midnight 30 December 1899

dateTest = COleDateTime::GetCurrentTime();
   // dateTest value = current date and time

// a second example for COleDateTime::GetCurrentTime
// Since GetCurrentTime() is a static member, you can use it in
// a constructor:

COleDateTime t1 = COleDateTime::GetCurrentTime();
COleDateTime t2(COleDateTime::GetCurrentTime());

// Or in a normal assignment operator

COleDateTime t3;
t3 = COleDateTime::GetCurrentTime();

// or even in an expression

 if (COleDateTime::GetCurrentTime().GetDayOfWeek() == 6)
    _tprintf(_T("Thank Goodness it is Friday!\n\n"));   

COleDateTime::GetDay

Mendapatkan hari dalam bulan yang diwakili oleh nilai tanggal/waktu ini.

int GetDay() const throw();

Tampilkan Nilai

Hari dalam bulan yang diwakili oleh nilai objek ini COleDateTime atau COleDateTime::error jika hari tidak dapat diperoleh.

Keterangan

Rentang nilai pengembalian yang valid antara 1 dan 31.

Untuk informasi tentang fungsi anggota lain yang mengkueri nilai objek ini COleDateTime , lihat fungsi anggota berikut:

Contoh

COleDateTime t(1999, 3, 19, 22, 15, 0);  // 10:15PM March 19, 1999
ASSERT(t.GetDay() == 19);
ASSERT(t.GetMonth() == 3);
ASSERT(t.GetYear() == 1999);   

COleDateTime::GetDayOfWeek

Mendapatkan hari dalam seminggu yang diwakili oleh nilai tanggal/waktu ini.

int GetDayOfWeek() const throw();

Tampilkan Nilai

Hari dalam seminggu yang diwakili oleh nilai objek ini COleDateTime atau COleDateTime::error jika hari dalam seminggu tidak dapat diperoleh.

Keterangan

Nilai pengembalian yang valid berkisar antara 1 dan 7, di mana 1=Minggu, 2=Senin, dan sebagainya.

Untuk informasi tentang fungsi anggota lain yang mengkueri nilai objek ini COleDateTime , lihat fungsi anggota berikut:

Contoh

COleDateTime t(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999
ASSERT(t.GetDayOfWeek() == 6);          // it's a Friday   

COleDateTime::GetDayOfYear

Mendapatkan hari dalam setahun yang diwakili oleh nilai tanggal/waktu ini.

int GetDayOfYear() const throw();

Tampilkan Nilai

Hari dalam setahun yang diwakili oleh nilai objek ini COleDateTime atau COleDateTime::error jika hari dalam setahun tidak dapat diperoleh.

Keterangan

Nilai pengembalian yang valid berkisar antara 1 dan 366, di mana 1 Januari = 1.

Untuk informasi tentang fungsi anggota lain yang mengkueri nilai objek ini COleDateTime , lihat fungsi anggota berikut:

Contoh

COleDateTime t(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999
ASSERT(t.GetDayOfYear() == 78);         // 78th day of that year   

COleDateTime::GetHour

Mendapatkan jam yang diwakili oleh nilai tanggal/waktu ini.

int GetHour() const throw();

Tampilkan Nilai

Jam yang diwakili oleh nilai objek ini COleDateTime atau COleDateTime::error jika jam tidak dapat diperoleh.

Keterangan

Rentang nilai pengembalian yang valid antara 0 dan 23.

Untuk informasi tentang fungsi anggota lain yang mengkueri nilai objek ini COleDateTime , lihat fungsi anggota berikut:

Contoh

COleDateTime t(1999, 3, 19, 22, 15, 0);  // 10:15PM March 19, 1999
ASSERT(t.GetSecond() == 0);
ASSERT(t.GetMinute() == 15);
ASSERT(t.GetHour() == 22);   

COleDateTime::GetMinute

Mendapatkan menit yang diwakili oleh nilai tanggal/waktu ini.

int GetMinute() const throw();

Tampilkan Nilai

Menit yang diwakili oleh nilai objek ini COleDateTime atau COleDateTime::error jika menit tidak dapat diperoleh.

Keterangan

Rentang nilai pengembalian yang valid antara 0 dan 59.

Untuk informasi tentang fungsi anggota lain yang mengkueri nilai objek ini COleDateTime , lihat fungsi anggota berikut:

Contoh

Lihat contoh untuk GetHour.

COleDateTime::GetMonth

Mendapatkan bulan yang diwakili oleh nilai tanggal/waktu ini.

int GetMonth() const throw();

Tampilkan Nilai

Bulan yang diwakili oleh nilai objek ini COleDateTime atau COleDateTime::error jika bulan tidak dapat diperoleh.

Keterangan

Rentang nilai pengembalian yang valid antara 1 dan 12.

Untuk informasi tentang fungsi anggota lain yang mengkueri nilai objek ini COleDateTime , lihat fungsi anggota berikut:

Contoh

Lihat contoh untuk GetDay.

COleDateTime::GetSecond

Mendapatkan yang kedua yang diwakili oleh nilai tanggal/waktu ini.

int GetSecond() const throw();

Tampilkan Nilai

Yang kedua diwakili oleh nilai objek ini COleDateTime atau COleDateTime::error jika yang kedua tidak dapat diperoleh.

Keterangan

Rentang nilai pengembalian yang valid antara 0 dan 59.

Catatan

Kelas COleDateTime tidak mendukung detik lompatan.

Untuk informasi selengkapnya tentang implementasi untuk COleDateTime, lihat artikel Tanggal dan Waktu: Dukungan Automation.

Untuk informasi tentang fungsi anggota lain yang mengkueri nilai objek ini COleDateTime , lihat fungsi anggota berikut:

Contoh

Lihat contoh untuk GetHour.

COleDateTime::GetStatus

Mendapatkan status (validitas) objek tertentu COleDateTime .

DateTimeStatus GetStatus() const throw();

Tampilkan Nilai

Mengembalikan status nilai ini COleDateTime . Jika Anda memanggil GetStatus objek yang COleDateTime dibangun dengan default, itu akan mengembalikan valid. Jika Anda memanggil GetStatus objek yang COleDateTime diinisialisasi dengan konstruktor yang diatur ke null, GetStatus akan mengembalikan null.

Keterangan

Nilai pengembalian didefinisikan oleh DateTimeStatus jenis enumerasi, yang didefinisikan dalam COleDateTime kelas .

enum DateTimeStatus
{
   error = -1,
   valid = 0,
   invalid = 1,    // Invalid date (out of range, etc.)
   null = 2,       // Literally has no value
};

Untuk deskripsi singkat tentang nilai status ini, lihat daftar berikut ini:

  • COleDateTime::error Menunjukkan bahwa terjadi kesalahan saat mencoba mendapatkan bagian dari nilai tanggal/waktu.

  • COleDateTime::valid Menunjukkan bahwa objek ini COleDateTime valid.

  • COleDateTime::invalid Menunjukkan bahwa objek ini COleDateTime tidak valid; artinya, nilainya mungkin salah.

  • COleDateTime::null Menunjukkan bahwa objek ini COleDateTime null, yaitu tidak ada nilai yang disediakan untuk objek ini. (Ini adalah "null" dalam arti database "tidak memiliki nilai," dibandingkan dengan C++ NULL.)

Status COleDateTime objek tidak valid dalam kasus berikut:

  • Jika nilainya diatur dari VARIANT nilai atau COleVariant yang tidak dapat dikonversi ke nilai tanggal/waktu.

  • Jika nilainya diatur dari time_tnilai , , SYSTEMTIMEatau FILETIME yang tidak dapat dikonversi ke nilai tanggal/waktu yang valid.

  • Jika nilainya diatur oleh SetDateTime dengan nilai parameter yang tidak valid.

  • Jika objek ini mengalami luapan atau aliran bawah selama operasi penetapan aritmatika, yaitu, += atau -=.

  • Jika nilai tidak valid ditetapkan ke objek ini.

  • Jika status objek ini secara eksplisit diatur ke tidak valid menggunakan SetStatus.

Untuk informasi selengkapnya tentang operasi yang mungkin mengatur status menjadi tidak valid, lihat fungsi anggota berikut ini:

Untuk informasi selengkapnya tentang batas COleDateTime nilai, lihat artikel Tanggal dan Waktu: Dukungan Automation.

Contoh

COleDateTime t;

// this one is a leap year
t.SetDateTime(2000, 2, 29, 5, 0, 0);
ASSERT(t.GetStatus() == COleDateTime::valid);

// this date isn't valid
t.SetDateTime(1925, 2, 30, 5, 0, 0);
ASSERT(t.GetStatus() == COleDateTime::invalid);

// the only way to set null is to set null!
t.SetStatus(COleDateTime::null);
ASSERT(t.GetStatus() == COleDateTime::null);   

COleDateTime::GetYear

Mendapatkan tahun yang diwakili oleh nilai tanggal/waktu ini.

int GetYear() const throw();

Tampilkan Nilai

Tahun yang diwakili oleh nilai objek ini COleDateTime atau COleDateTime::error jika tahun tidak dapat diperoleh.

Keterangan

Nilai pengembalian yang valid berkisar antara 100 dan 9999, yang mencakup abad.

Untuk informasi tentang fungsi anggota lain yang mengkueri nilai objek ini COleDateTime , lihat fungsi anggota berikut:

Untuk informasi selengkapnya tentang batas COleDateTime nilai, lihat artikel Tanggal dan Waktu: Dukungan Automation.

Contoh

Lihat contoh untuk GetDay.

COleDateTime::m_dt

Struktur yang mendasar DATE untuk objek ini COleDateTime .

DATE m_dt;

Keterangan

Perhatian

Mengubah nilai dalam objek yang DATE diakses oleh penunjuk yang dikembalikan oleh fungsi ini akan mengubah nilai objek ini COleDateTime . Ini tidak mengubah status objek ini COleDateTime .

Untuk informasi selengkapnya tentang implementasi DATE objek, lihat artikel Tanggal dan Waktu: Dukungan Automation.

COleDateTime::m_status

Berisi status objek ini COleDateTime .

DateTimeStatus m_status;

Keterangan

Jenis anggota data ini adalah jenis DateTimeStatusenumerasi , yang ditentukan dalam COleDateTime kelas . Untuk informasi selengkapnya, lihat COleDateTime::GetStatus.

Perhatian

Anggota data ini untuk situasi pemrograman tingkat lanjut. Anda harus menggunakan fungsi anggota sebaris GetStatus dan SetStatus. Lihat SetStatus untuk perhatian lebih lanjut mengenai pengaturan anggota data ini secara eksplisit.

COleDateTime::operator =

COleDateTime Menyalin nilai.

COleDateTime& operator=(const VARIANT& varSrc) throw();
COleDateTime& operator=(DATE dtSrc) throw();
COleDateTime& operator=(const time_t& timeSrc) throw();
COleDateTime& operator=(const __time64_t& timeSrc) throw();
COleDateTime& operator=(const SYSTEMTIME& systimeSrc) throw();
COleDateTime& operator=(const FILETIME& filetimeSrc) throw();
COleDateTime& operator=(const UDATE& uDate) throw();

Keterangan

Operator penugasan yang kelebihan beban ini menyalin nilai tanggal/waktu sumber ke dalam objek ini COleDateTime . Deskripsi singkat tentang setiap operator penugasan yang kelebihan beban ini mengikuti:

  • operator =( dateSrc ) Nilai dan status operand disalin ke dalam objek ini COleDateTime .

  • operator =( varSrc ) Jika konversi nilai VARIAN (atau objek COleVariant ) ke tanggal/waktu (VT_DATE) berhasil, nilai yang dikonversi disalin ke objek ini COleDateTime dan statusnya diatur ke valid. Jika konversi tidak berhasil, nilai objek ini diatur ke nol (30 Desember 1899, tengah malam) dan statusnya menjadi tidak valid.

  • operator =( dtSrc ) Nilai DATE disalin ke dalam objek ini COleDateTime dan statusnya diatur ke valid.

  • operator =( timeSrc ) Nilai time_t atau __time64_t dikonversi dan disalin ke dalam objek ini COleDateTime . Jika konversi berhasil, status objek ini diatur ke valid; jika tidak berhasil, itu diatur ke tidak valid.

  • operator =( systimeSrc ) Nilai SYSTEMTIME dikonversi dan disalin ke dalam objek ini COleDateTime . Jika konversi berhasil, status objek ini diatur ke valid; jika tidak berhasil, itu diatur ke tidak valid.

  • operator =( uDate ) Nilai UDATE dikonversi dan disalin ke dalam objek ini COleDateTime . Jika konversi berhasil, status objek ini diatur ke valid; jika tidak berhasil, itu diatur ke tidak valid. Struktur UDATE mewakili tanggal "tidak dikemas". Untuk informasi selengkapnya, lihat fungsi VarDateFromUdate.

  • operator =( filetimeSrc ) Nilai FILETIME dikonversi dan disalin ke dalam objek ini COleDateTime . Jika konversi berhasil, status objek ini diatur ke valid; jika tidak, diatur ke tidak valid. FILETIME menggunakan Universal Coordinated Time (UTC), jadi jika Anda melewati waktu UTC dalam struktur, hasil Anda akan dikonversi dari waktu UTC ke waktu lokal, dan akan disimpan sebagai waktu varian. Perilaku ini sama seperti di Visual C++ 6.0 dan Visual C++.NET 2003 SP2. Untuk informasi selengkapnya, lihat Waktu File di Windows SDK.

Untuk informasi selengkapnya, lihat entri VARIAN di Windows SDK.

Untuk informasi selengkapnya tentang time_t jenis data, lihat fungsi waktu di Referensi Pustaka Run-Time.

Untuk informasi selengkapnya, lihat struktur SYSTEMTIME dan FILETIME di Windows SDK.

Untuk informasi selengkapnya tentang batas COleDateTime nilai, lihat artikel Tanggal dan Waktu: Dukungan Automation.

COleDateTime::operator +, -

Tambahkan dan kurangi ColeDateTime nilai.

COleDateTime operator+(COleDateTimeSpan dateSpan) const throw();
COleDateTime operator-(COleDateTimeSpan dateSpan) const throw();
COleDateTimeSpan operator-(const COleDateTime& date) const throw();

Keterangan

COleDateTime objek mewakili waktu absolut. Objek COleDateTimeSpan mewakili waktu relatif. Dua operator pertama memungkinkan Anda menambahkan dan mengurangi COleDateTimeSpan nilai dari nilai COleDateTime . Operator ketiga memungkinkan Anda mengurangi satu COleDateTime nilai dari nilai lain untuk menghasilkan COleDateTimeSpan nilai.

Jika salah satu operand null, status nilai yang COleDateTime dihasilkan adalah null.

Jika nilai yang COleDateTime dihasilkan berada di luar batas nilai yang COleDateTime dapat diterima, status nilai tersebut tidak valid.

Jika salah satu operand tidak valid dan yang lain tidak null, status nilai yang COleDateTime dihasilkan tidak valid.

Operator + dan - akan menegaskan COleDateTime jika objek diatur ke null. Lihat Operator Relasional COleDateTime misalnya.

Untuk informasi selengkapnya tentang nilai status valid, tidak valid, dan null, lihat variabel anggota m_status .

Untuk informasi selengkapnya tentang batas COleDateTime nilai, lihat artikel Tanggal dan Waktu: Dukungan Automation.

Contoh

COleDateTime t1(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999
COleDateTime t2(1999, 3, 20, 22, 15, 0); // 10:15PM March 20, 1999

// Subtract 2 COleDateTimes
COleDateTimeSpan ts = t2 - t1;

// one day is 24 * 60 * 60 == 86400 seconds
ASSERT(ts.GetTotalSeconds() == 86400L);

// Add a COleDateTimeSpan to a COleDateTime.
ASSERT((t1 + ts) == t2);

// Subtract a COleDateTimeSpan from a COleDateTime.
ASSERT((t2 - ts) == t1);   

COleDateTime::operator +=, -=

Tambahkan dan kurangi ColeDateTime nilai dari objek ini COleDateTime .

COleDateTime& operator+=(COleDateTimeSpan dateSpan) throw();
COleDateTime& operator-=(COleDateTimeSpan dateSpan) throw();

Keterangan

Operator ini memungkinkan Anda untuk menambahkan dan mengurangi COleDateTimeSpan nilai ke dan dari ini COleDateTime. Jika salah satu operand null, status nilai yang COleDateTime dihasilkan adalah null.

Jika nilai yang COleDateTime dihasilkan berada di luar batas nilai yang dapat diterima, status nilai ini COleDateTime diatur ke tidak valid.

Jika salah satu operand tidak valid dan lainnya tidak null, status nilai yang COleDateTime dihasilkan tidak valid.

Untuk informasi selengkapnya tentang nilai status valid, tidak valid, dan null, lihat variabel anggota m_status .

Operator += dan -= akan menegaskan COleDateTime jika objek diatur ke null. Lihat Operator Relasional COleDateTime misalnya.

Untuk informasi selengkapnya tentang batas COleDateTime nilai, lihat artikel Tanggal dan Waktu: Dukungan Automation.

COleDateTime::operator DATE

Mengonversi nilai menjadi ColeDateTime DATE.

operator DATE() const throw();

Keterangan

Operator ini mengembalikan DATE objek yang nilainya disalin dari objek ini COleDateTime . Untuk informasi selengkapnya tentang implementasi DATE objek, lihat artikel Tanggal dan Waktu: Dukungan Automation.

Operator DATE akan menegaskan COleDateTime apakah objek diatur ke null. Lihat Operator Relasional COleDateTime misalnya.

COleDateTime::P arseDateTime

Mengurai string untuk membaca nilai tanggal/waktu.

bool ParseDateTime(
    LPCTSTR lpszDate,
    DWORD dwFlags = 0,
    LCID lcid = LANG_USER_DEFAULT) throw();

Parameter

lpszDate
Penunjuk ke string null-terminated yang akan diurai. Untuk detailnya, lihat Keterangan.

dwFlags
Menunjukkan bendera untuk pengaturan dan penguraian lokal. Satu atau beberapa bendera berikut:

  • LOCALE_NOUSEROVERRIDE Gunakan pengaturan lokal default sistem, bukan pengaturan pengguna kustom.

  • VAR_TIMEVALUEONLY Abaikan bagian tanggal selama penguraian.

  • VAR_DATEVALUEONLY Abaikan bagian waktu selama penguraian.

Icid
Menunjukkan ID lokal yang akan digunakan untuk konversi.

Tampilkan Nilai

Mengembalikan TRUE jika string berhasil dikonversi ke nilai tanggal/waktu, jika tidak FALSE.

Keterangan

Jika string berhasil dikonversi ke nilai tanggal/waktu, nilai objek ini COleDateTime diatur ke nilai tersebut dan statusnya ke valid.

Catatan

Nilai tahun harus terletak antara 100 dan 9999, secara inklusif.

Parameter lpszDate dapat mengambil berbagai format. Misalnya, string berikut berisi format tanggal/waktu yang dapat diterima:

"25 January 1996"

"8:30:00"

"20:30:00"

"January 25, 1996 8:30:00"

"8:30:00 Jan. 25, 1996"

"1/25/1996 8:30:00" // always specify the full year, even in a 'short date' format

ID lokal juga akan memengaruhi apakah format string dapat diterima untuk konversi ke nilai tanggal/waktu.

Dalam kasus VAR_DATEVALUEONLY, nilai waktu diatur ke waktu 0, atau tengah malam. Dalam kasus VAR_TIMEVALUEONLY, nilai tanggal diatur ke tanggal 0, yang berarti 30 Desember 1899.

Jika string tidak dapat dikonversi ke nilai tanggal/waktu atau jika ada luapan numerik, status objek ini COleDateTime tidak valid.

Untuk informasi selengkapnya tentang batas dan implementasi untuk COleDateTime nilai, lihat artikel Tanggal dan Waktu: Dukungan Automation.

COleDateTime::SetDate

Menyetel tanggal objek ini COleDateTime .

int SetDate(
    int nYear,
    int nMonth,
    int nDay) throw();

Parameter

nYear
Menunjukkan tahun untuk menyalin ke dalam objek ini COleDateTime .

nMonth
Menunjukkan bulan untuk menyalin ke dalam objek ini COleDateTime .

nDay
Menunjukkan hari untuk menyalin ke dalam objek ini COleDateTime .

Tampilkan Nilai

Nol jika nilai objek ini COleDateTime berhasil diatur; jika tidak, 1. Nilai pengembalian ini didasarkan pada DateTimeStatus jenis enumerasi. Untuk informasi selengkapnya, lihat fungsi anggota SetStatus .

Keterangan

Tanggal diatur ke nilai yang ditentukan. Waktu diatur ke waktu 0, tengah malam.

Lihat tabel berikut untuk batas nilai parameter:

Parameter Batas
nYear 100 - 9999
nMonth 1 - 12
nDay 0 - 31

Jika hari dalam sebulan meluap, itu dikonversi ke hari yang benar bulan berikutnya dan bulan dan/atau tahun bertambah sesuai. Nilai hari nol menunjukkan hari terakhir bulan sebelumnya. Perilakunya sama SystemTimeToVariantTimedengan .

Jika nilai tanggal yang ditentukan oleh parameter tidak valid, status objek ini diatur ke COleDateTime::invalid. Anda harus menggunakan GetStatus untuk memeriksa validitas DATE nilai dan tidak boleh berasumsi bahwa nilai m_dt akan tetap tidak dimodifikasi.

Berikut adalah beberapa contoh nilai tanggal:

nYear nMonth nDay Nilai
2000 2 29 29 Februari 2000
1776 7 4 4 Juli 1776
1925 4 35 35 April 1925 (tanggal tidak valid)
10000 1 1 1 Januari 10000 (tanggal tidak valid)

Untuk mengatur tanggal dan waktu, lihat COleDateTime::SetDateTime.

Untuk informasi tentang fungsi anggota yang mengkueri nilai objek ini COleDateTime , lihat fungsi anggota berikut:

Untuk informasi selengkapnya tentang batas COleDateTime nilai, lihat artikel Tanggal dan Waktu: Dukungan Automation.

Contoh

// set only the date, time set to midnight
dt.SetDate(1999, 3, 19);
ASSERT(dt.GetYear() == 1999);
ASSERT(dt.GetDay() == 19);
ASSERT(dt.GetMonth() == 3);
ASSERT(dt.GetHour() == 0);
ASSERT(dt.GetMinute() == 0);
ASSERT(dt.GetSecond() == 0);

// setting the time only resets the date to 1899!
dt.SetTime(22, 15, 0);
ASSERT(dt.GetYear() == 1899);
ASSERT(dt.GetDay() == 30);
ASSERT(dt.GetMonth() == 12);
ASSERT(dt.GetHour() == 22);
ASSERT(dt.GetMinute() == 15);
ASSERT(dt.GetSecond() == 0);   

COleDateTime::SetDateTime

Menyetel tanggal dan waktu objek ini COleDateTime .

int SetDateTime(
    int nYear,
    int nMonth,
    int nDay,
    int nHour,
    int nMin,
    int nSec) throw();

Parameter

nYear, nMonth, nDay, nHour, nMin, nSec
Tunjukkan komponen tanggal dan waktu yang akan disalin ke dalam objek ini COleDateTime .

Tampilkan Nilai

Nol jika nilai objek ini COleDateTime berhasil diatur; jika tidak, 1. Nilai pengembalian ini didasarkan pada DateTimeStatus jenis enumerasi. Untuk informasi selengkapnya, lihat fungsi anggota SetStatus .

Keterangan

Lihat tabel berikut untuk batas nilai parameter:

Parameter Batas
nYear 100 - 9999
nMonth 1 - 12
nDay 0 - 31
nHour 0 - 23
nMin 0 - 59
nSec 0 - 59

Jika hari dalam sebulan meluap, itu dikonversi ke hari yang benar bulan berikutnya dan bulan dan/atau tahun bertambah sesuai. Nilai hari nol menunjukkan hari terakhir bulan sebelumnya. Perilakunya sama dengan SystemTimeToVariantTime.

Jika nilai tanggal atau waktu yang ditentukan oleh parameter tidak valid, status objek ini diatur ke tidak valid dan nilai objek ini tidak diubah.

Berikut adalah beberapa contoh nilai waktu:

nHour nMin nSec Nilai
1 3 3 01:03:03
23 45 0 23:45:00
25 30 0 Tidak valid
9 60 0 Tidak valid

Berikut adalah beberapa contoh nilai tanggal:

nYear nMonth nDay Nilai
1995 4 15 15 April 1995
1789 7 14 17 Juli 1789
1925 2 30 Tidak valid
10000 1 1 Tidak valid

Untuk mengatur tanggal saja, lihat COleDateTime::SetDate. Untuk mengatur waktu saja, lihat COleDateTime::SetTime.

Untuk informasi tentang fungsi anggota yang mengkueri nilai objek ini COleDateTime , lihat fungsi anggota berikut:

Untuk informasi selengkapnya tentang batas COleDateTime nilai, lihat artikel Tanggal dan Waktu: Dukungan Automation.

Contoh

Lihat contoh untuk GetStatus.

COleDateTime::SetStatus

Menyetel status objek ini COleDateTime .

void SetStatus(DateTimeStatus status) throw();

Parameter

status
Nilai status baru untuk objek ini COleDateTime .

Keterangan

Nilai parameter status didefinisikan oleh DateTimeStatus jenis enumerasi, yang ditentukan dalam COleDateTime kelas . Lihat COleDateTime::GetStatus untuk detailnya.

Perhatian

Fungsi ini untuk situasi pemrograman tingkat lanjut. Fungsi ini tidak mengubah data dalam objek ini. Ini paling sering akan digunakan untuk mengatur status ke null atau tidak valid. Operator penugasan (operator =) dan SetDateTime memang mengatur status objek berdasarkan nilai sumber.

Contoh

Lihat contoh untuk GetStatus.

COleDateTime::SetTime

Menyetel waktu objek ini COleDateTime .

int SetTime(
    int nHour,
    int nMin,
    int nSec) throw();

Parameter

nHour, nMin, nSec
Tunjukkan komponen waktu yang akan disalin ke dalam objek ini COleDateTime .

Tampilkan Nilai

Nol jika nilai objek ini COleDateTime berhasil diatur; jika tidak, 1. Nilai pengembalian ini didasarkan pada DateTimeStatus jenis enumerasi. Untuk informasi selengkapnya, lihat fungsi anggota SetStatus .

Keterangan

Waktu diatur ke nilai yang ditentukan. Tanggal diatur ke tanggal 0, yang berarti 30 Desember 1899.

Lihat tabel berikut untuk batas nilai parameter:

Parameter Batas
nHour 0 - 23
nMin 0 - 59
nSec 0 - 59

Jika nilai waktu yang ditentukan oleh parameter tidak valid, status objek ini diatur ke tidak valid dan nilai objek ini tidak diubah.

Berikut adalah beberapa contoh nilai waktu:

nHour nMin nSec Nilai
1 3 3 01:03:03
23 45 0 23:45:00
25 30 0 Tidak valid
9 60 0 Tidak valid

Untuk mengatur tanggal dan waktu, lihat COleDateTime::SetDateTime.

Untuk informasi tentang fungsi anggota yang mengkueri nilai objek ini COleDateTime , lihat fungsi anggota berikut:

Untuk informasi selengkapnya tentang batas COleDateTime nilai, lihat artikel Tanggal dan Waktu: Dukungan Automation.

Contoh

Lihat contoh untuk SetDate.

Lihat juga

Kelas COleVariant
Kelas CTime
Kelas CTimeSpan
Bagan Hierarki
Kelas Bersama ATL/MFC