OSDN Git Service

Fixes to TortoiseGitBlame for date format from locale. TortoiseGitBlameView and GitDi...
[tortoisegit/TortoiseGitJp.git] / src / TortoiseGitBlame / TortoiseGitBlameAppUtils.cpp
1 // TortoiseGit - a Windows shell extension for easy version control\r
2 \r
3 // Copyright (C) 2003-2008 - TortoiseGit\r
4 \r
5 // This program is free software; you can redistribute it and/or\r
6 // modify it under the terms of the GNU General Public License\r
7 // as published by the Free Software Foundation; either version 2\r
8 // of the License, or (at your option) any later version.\r
9 \r
10 // This program is distributed in the hope that it will be useful,\r
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of\r
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
13 // GNU General Public License for more details.\r
14 \r
15 // You should have received a copy of the GNU General Public License\r
16 // along with this program; if not, write to the Free Software Foundation,\r
17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\r
18 //\r
19 #include "StdAfx.h"\r
20 #include "resource.h"\r
21 //#include "TortoiseProc.h"\r
22 //#include "PathUtils.h"\r
23 #include "TortoiseGitBlameAppUtils.h"\r
24 //#include "GitProperties.h"\r
25 //#include "StringUtils.h"\r
26 //#include "MessageBox.h"\r
27 #include "Registry.h"\r
28 //#include "TGitPath.h"\r
29 //include "Git.h"\r
30 //#include "RepositoryBrowser.h"\r
31 //#include "BrowseFolder.h"\r
32 //#include "UnicodeUtils.h"\r
33 //#include "ExportDlg.h"\r
34 //#include "ProgressDlg.h"\r
35 //#include "GitAdminDir.h"\r
36 //#include "ProgressDlg.h"\r
37 //#include "BrowseFolder.h"\r
38 //#include "DirFileEnum.h"\r
39 //#include "MessageBox.h"\r
40 //#include "GitStatus.h"\r
41 //#include "CreateBranchTagDlg.h"\r
42 //#include "GitSwitchDlg.h"\r
43 //#include "ResetDlg.h"\r
44 //#include "commctrl.h"\r
45 \r
46 CAppUtils::CAppUtils(void)\r
47 {\r
48 }\r
49 \r
50 CAppUtils::~CAppUtils(void)\r
51 {\r
52 }\r
53 \r
54 /**\r
55  * FUNCTION    :   FormatDateAndTime\r
56  * DESCRIPTION :   Generates a displayable string from a CTime object in\r
57  *                 system short or long format dependant on setting of option\r
58  *                                 as DATE_SHORTDATE or DATE_LONGDATE\r
59  *                                 If HKCU\Software\TortoiseGit\UseSystemLocaleForDates is 0 then use fixed format\r
60  *                                 rather than locale\r
61  * RETURN      :   CString containing date/time\r
62  */\r
63 CString CAppUtils::FormatDateAndTime( const CTime& cTime, DWORD option, bool bIncludeTime /*=true*/  )\r
64 {\r
65         CString datetime;\r
66     // should we use the locale settings for formatting the date/time?\r
67         if (CRegDWORD(_T("Software\\TortoiseGit\\UseSystemLocaleForDates"), TRUE))\r
68         {\r
69                 // yes\r
70                 SYSTEMTIME sysTime;\r
71                 cTime.GetAsSystemTime( sysTime );\r
72                 \r
73                 TCHAR buf[100];\r
74                 \r
75                 GetDateFormat(LOCALE_USER_DEFAULT, option, &sysTime, NULL, buf, \r
76                         sizeof(buf)/sizeof(TCHAR)-1);\r
77                 datetime = buf;\r
78                 if ( bIncludeTime )\r
79                 {\r
80                         datetime += _T(" ");\r
81                         GetTimeFormat(LOCALE_USER_DEFAULT, 0, &sysTime, NULL, buf, sizeof(buf)/sizeof(TCHAR)-1);\r
82                         datetime += buf;\r
83                 }\r
84         }\r
85         else\r
86         {\r
87                 // no, so fixed format\r
88                 if ( bIncludeTime )\r
89                 {\r
90                         datetime = cTime.Format(_T("%Y-%m-%d %H:%M:%S"));\r
91                 }\r
92                 else\r
93                 {\r
94                         datetime = cTime.Format(_T("%Y-%m-%d"));\r
95                 }\r
96         }\r
97         return datetime;\r
98 }\r