Merge commit 'upstream/0.2.8'
[debian/pino.git] / src / time_utils.vala
1 /* time_utils.vala
2  *
3  * Copyright (C) 2009-2010  troorl
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU Lesser General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public License
16  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
17  *
18  * Author:
19  *      troorl <troorl@gmail.com>
20  */
21
22 namespace TimeUtils {
23         
24         public Time get_current_time() {
25                 var tval = TimeVal();
26                 tval.get_current_time();
27                 return Time.local((time_t)tval.tv_sec);
28         }
29         
30         public int tz_delta(Time t) {
31                 int xdelta = 0;
32                 string sdelta = t.format("%z");
33                 
34                 xdelta += sdelta.substring(1, 2).to_int()*3600;
35                 xdelta += sdelta.substring(3, 2).to_int()*60;
36                 
37                 if(sdelta[0]=='-')
38                         xdelta *= -1;
39                 
40                 return xdelta;
41         }
42         
43         public Time str_to_time(string str) {
44                 var tmpTime = Time();
45                 tmpTime.strptime(str, "%a %b %d %T +0000 %Y");
46                 var tt = tmpTime.mktime();
47                 var tmp = Time.local(tt);
48                 int delta = tz_delta(tmp);
49                 int int_t = (int)tt + delta;
50                 
51                 return Time.local((time_t)int_t);
52         }
53 }