aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/timeutil.c
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@nuclecu.unam.mx>1998-10-03 07:59:35 +0800
committerArturo Espinosa <unammx@src.gnome.org>1998-10-03 07:59:35 +0800
commit96439bc6fffe21b8359bd825aa89fc586d36380a (patch)
treedc5a71f7b8cfbe15af6721f9440ef4c6c75f57a4 /calendar/timeutil.c
parente9a632c3c15bac86946af5f6d75a79517b4c6a07 (diff)
downloadgsoc2013-evolution-96439bc6fffe21b8359bd825aa89fc586d36380a.tar.gz
gsoc2013-evolution-96439bc6fffe21b8359bd825aa89fc586d36380a.tar.zst
gsoc2013-evolution-96439bc6fffe21b8359bd825aa89fc586d36380a.zip
Changed name from time_start_of_day() to be consistent with the other
1998-10-02 Federico Mena Quintero <federico@nuclecu.unam.mx> * timeutil.c (time_day_begin): Changed name from time_start_of_day() to be consistent with the other begin/end functions. (time_day_end): Likewise. * calobj.c (ical_object_get_first_weekday): New public function to get the first toggled day in a weekday mask. Since we do not support multiple weekdays in a monthly-by-pos rule, we just fetch the first toggled one. (ical_object_generate_events): Added a missing break statement. * timeutil.c (time_month_end): Made it consistent with the rest of the time begin/end functions -- now it returns the first second of the *next* month. (time_week_end): Actually implemented this function. It will be used when the week view is rewritten. * calobj.c (time_in_range): Fix off-by-one in the comparison of the time against the end time. * gncal-full-day.c (expand_space): Fixed bug where the columns not were being expanded due to a missing "slot + j". svn path=/trunk/; revision=425
Diffstat (limited to 'calendar/timeutil.c')
-rw-r--r--calendar/timeutil.c70
1 files changed, 47 insertions, 23 deletions
diff --git a/calendar/timeutil.c b/calendar/timeutil.c
index 5d4008e75d..7a0550c069 100644
--- a/calendar/timeutil.c
+++ b/calendar/timeutil.c
@@ -210,34 +210,38 @@ time_from_day (int year, int month, int day)
}
time_t
-time_start_of_day (time_t t)
+time_year_begin (time_t t)
{
struct tm tm;
-
+
tm = *localtime (&t);
tm.tm_hour = 0;
tm.tm_min = 0;
tm.tm_sec = 0;
+ tm.tm_mon = 0;
+ tm.tm_mday = 1;
return mktime (&tm);
}
time_t
-time_end_of_day (time_t t)
+time_year_end (time_t t)
{
struct tm tm;
-
+
tm = *localtime (&t);
tm.tm_hour = 0;
tm.tm_min = 0;
tm.tm_sec = 0;
- tm.tm_mday++;
-
+ tm.tm_mon = 0;
+ tm.tm_mday = 1;
+ tm.tm_year++;
+
return mktime (&tm);
}
time_t
-time_year_begin (time_t t)
+time_month_begin (time_t t)
{
struct tm tm;
@@ -245,62 +249,82 @@ time_year_begin (time_t t)
tm.tm_hour = 0;
tm.tm_min = 0;
tm.tm_sec = 0;
- tm.tm_mon = 0;
tm.tm_mday = 1;
return mktime (&tm);
}
time_t
-time_year_end (time_t t)
+time_month_end (time_t t)
{
struct tm tm;
tm = *localtime (&t);
- tm.tm_hour = 23;
- tm.tm_min = 59;
- tm.tm_sec = 59;
- tm.tm_mon = 11;
- tm.tm_mday = 31;
+ tm.tm_hour = 0;
+ tm.tm_min = 0;
+ tm.tm_sec = 0;
+ tm.tm_mday = 1;
+ tm.tm_mon++;
return mktime (&tm);
}
time_t
-time_month_begin (time_t t)
+time_week_begin (time_t t)
{
struct tm tm;
+ /* FIXME: make it take week_starts_on_monday into account */
+
tm = *localtime (&t);
tm.tm_hour = 0;
tm.tm_min = 0;
tm.tm_sec = 0;
- tm.tm_mday = 1;
+ tm.tm_mday -= tm.tm_wday;
return mktime (&tm);
}
time_t
-time_month_end (time_t t)
+time_week_end (time_t t)
{
struct tm tm;
+ /* FIXME: make it take week_starts_on_monday into account */
+
tm = *localtime (&t);
- tm.tm_hour = 23;
- tm.tm_min = 59;
- tm.tm_sec = 59;
- tm.tm_mday = time_days_in_month (tm.tm_year + 1900, tm.tm_mon);
+ tm.tm_hour = 0;
+ tm.tm_min = 0;
+ tm.tm_sec = 0;
+ tm.tm_mday += 7 - tm.tm_wday;
return mktime (&tm);
}
time_t
-time_week_begin (time_t t)
+time_day_begin (time_t t)
{
struct tm tm;
+
+ tm = *localtime (&t);
+ tm.tm_hour = 0;
+ tm.tm_min = 0;
+ tm.tm_sec = 0;
+
+ return mktime (&tm);
+}
+time_t
+time_day_end (time_t t)
+{
+ struct tm tm;
+
tm = *localtime (&t);
- tm.tm_mday -= tm.tm_wday;
+ tm.tm_hour = 0;
+ tm.tm_min = 0;
+ tm.tm_sec = 0;
+ tm.tm_mday++;
+
return mktime (&tm);
}