File: date.h

package info (click to toggle)
wxpython3.0 3.0.2.0%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 482,760 kB
  • ctags: 518,293
  • sloc: cpp: 2,127,226; python: 294,045; makefile: 51,942; ansic: 19,033; sh: 3,013; xml: 1,629; perl: 17
file content (50 lines) | stat: -rw-r--r-- 1,432 bytes parent folder | download | duplicates (14)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
///////////////////////////////////////////////////////////////////////////////
// Name:        wx/osx/cocoa/private/date.h
// Purpose:     NSDate-related helpers
// Author:      Vadim Zeitlin
// Created:     2011-12-19
// Copyright:   (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence:     wxWindows licence
///////////////////////////////////////////////////////////////////////////////

#ifndef _WX_OSX_COCOA_PRIVATE_DATE_H_
#define _WX_OSX_COCOA_PRIVATE_DATE_H_

#include "wx/datetime.h"

namespace wxOSXImpl
{

// Functions to convert between NSDate and wxDateTime.

// Returns an NSDate corresponding to the given wxDateTime which can be invalid
// (in which case nil is returned).
inline NSDate* NSDateFromWX(const wxDateTime& dt)
{
    if ( !dt.IsValid() )
        return nil;

    // Get the internal representation as a double used by NSDate.
    double ticks = dt.GetValue().ToDouble();

    // wxDateTime uses milliseconds while NSDate uses (fractional) seconds.
    return [NSDate dateWithTimeIntervalSince1970:ticks/1000.];
}


// Returns wxDateTime corresponding to the given NSDate (which may be nil).
inline wxDateTime NSDateToWX(const NSDate* d)
{
    if ( !d )
        return wxDefaultDateTime;

    // Reverse everything done above.
    wxLongLong ll;
    ll.Assign([d timeIntervalSince1970]*1000);
    wxDateTime dt(ll);
    return dt;
}

} // namespace wxOSXImpl

#endif // _WX_OSX_COCOA_PRIVATE_DATE_H_