static Recurrence* _get_day_of_month_recurrence(GncFrequency *gf, GDate *start_date, int multiplier, char *combo_name, char *combo_weekend_name) { Recurrence *r; GtkWidget *day_of_month_combo = glade_xml_get_widget(gf->gxml, combo_name); int day_of_month_index = gtk_combo_box_get_active(GTK_COMBO_BOX(day_of_month_combo)); GtkWidget *weekend_adjust_combo = glade_xml_get_widget(gf->gxml, combo_weekend_name); int weekend_adjust = gtk_combo_box_get_active(GTK_COMBO_BOX(weekend_adjust_combo)); GDateWeekday selected_day_of_week; GDate *day_of_week_date; int selected_index, selected_week; r = g_new0(Recurrence, 1); if (day_of_month_index > LAST_DAY_OF_MONTH_OPTION_INDEX + 7) { selected_index = day_of_month_index - LAST_DAY_OF_MONTH_OPTION_INDEX - 7; day_of_week_date = g_date_new_julian(g_date_get_julian(start_date)); selected_week = (selected_index - 1) / 7 == 4 ? 3 : (selected_index - 1) / 7; selected_day_of_week = selected_index - 7 * selected_week; g_date_set_day(day_of_week_date, 1); while (g_date_get_weekday(day_of_week_date) != selected_day_of_week) g_date_add_days(day_of_week_date, 1); g_date_add_days(day_of_week_date, 7 * selected_week); recurrenceSet(r, multiplier, PERIOD_NTH_WEEKDAY, day_of_week_date, WEEKEND_ADJ_NONE); } else if (day_of_month_index > LAST_DAY_OF_MONTH_OPTION_INDEX) { day_of_week_date = g_date_new_julian(g_date_get_julian(start_date)); selected_day_of_week = day_of_month_index - LAST_DAY_OF_MONTH_OPTION_INDEX; // increment until we align on the DOW, but stay inside the month g_date_set_day(day_of_week_date, 1); while (g_date_get_weekday(day_of_week_date) != selected_day_of_week) g_date_add_days(day_of_week_date, 1); recurrenceSet(r, multiplier, PERIOD_LAST_WEEKDAY, day_of_week_date, weekend_adjust); } else if (day_of_month_index == LAST_DAY_OF_MONTH_OPTION_INDEX) { GDate *day_of_month = g_date_new_julian(g_date_get_julian(start_date)); recurrenceSet(r, multiplier, PERIOD_END_OF_MONTH, day_of_month, weekend_adjust); } else { int allowable_date = -1; GDate *day_of_month = g_date_new_julian(g_date_get_julian(start_date)); allowable_date = MIN(day_of_month_index + 1, g_date_get_days_in_month(g_date_get_month(day_of_month), g_date_get_year(day_of_month))); g_date_set_day(day_of_month, allowable_date); recurrenceSet(r, multiplier, PERIOD_MONTH, day_of_month, weekend_adjust); } return r; }
static gpointer gdate_copy (gpointer boxed) { const GDate *date = (const GDate*) boxed; return g_date_new_julian (g_date_get_julian (date)); }
/* set stop date returns false when not able to set */ gboolean gtodo_todo_item_set_stop_date_as_julian(GTodoItem *item, guint32 julian) { if(!g_date_valid_julian(julian)) return FALSE; if(item->stop == NULL) item->stop = g_date_new_julian(julian); else g_date_set_julian(item->stop, julian); return TRUE; }
/* ** date cell function */ static void date_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Archive *arc; gchar buffer[256]; GDate *date; gtk_tree_model_get(model, iter, LST_DSPUPC_DATAS, &arc, -1); if(arc) { date = g_date_new_julian (arc->nextdate); g_date_strftime (buffer, 256-1, PREFS->date_format, date); g_date_free(date); //g_snprintf(buf, sizeof(buf), "%d", ope->ope_Date); g_object_set(renderer, "text", buffer, NULL); } else g_object_set(renderer, "text", NULL, NULL); }
DATE* julian_to_date (guint32 julian_day) { DATE *date; GDate *cdate; date = g_new0 (DATE, 1); if (date == NULL) { return date; } if (g_date_valid_julian(julian_day)) { cdate = g_date_new_julian (julian_day); if (cdate != NULL) { if (g_date_valid (cdate)) { date->year = g_date_get_year (cdate); date->month = g_date_get_month (cdate); date->day = g_date_get_day (cdate); } g_date_free(cdate); } return date; /* you have to free DATE struct after use! */ } else { return NULL; } }
gchar* julian_to_str (guint32 julian_day, gint date_format) { static gchar buffer[BUFFER_SIZE]; GDate *cdate; gint i; gchar *date_format_str[] = { "%d-%m-%Y", "%m-%d-%Y", "%Y-%m-%d", "%Y-%d-%m", "%e %B", "%A", "%e %B %Y" }; if (g_date_valid_julian (julian_day)) { cdate = g_date_new_julian (julian_day); g_return_val_if_fail (cdate != NULL, buffer); if (date_format < DATE_DD_MM_YYYY || date_format > DATE_FULL) { date_format = DATE_DD_MM_YYYY; } g_date_strftime (buffer, BUFFER_SIZE, date_format_str[date_format], cdate); g_date_free (cdate); if (buffer[0] == ' ') { for (i = 1; buffer[i]; i++) buffer[i-1] = buffer[i]; buffer[i-1] = '\0'; } } else { g_strlcpy (buffer, _("No date"), BUFFER_SIZE); } return buffer; }
/*int*/ main (int argc, char **argv) { GFile *file; GFileInfo *info; GCancellable *cancel; time_t time; GError *error = NULL; g_type_init(); cancel = g_cancellable_new (); file = g_file_new_for_uri ("file:///home/gabriel/Imagens/jazzradio1.jpg"); info = g_file_query_info (file, "standard::*", G_FILE_QUERY_INFO_NONE, cancel, &error); guint32 xtime; xtime = g_file_info_get_attribute_uint32 (info, "time::created-usec"); GDate *date; date = g_date_new_julian (xtime); g_print ("Dia: %d\n=========", (int) g_date_get_month(date)); if (error) g_printerr ("FUDEU: %s\n", error->message); g_print ("O tamanho do arquivo eh: %d", (int) g_file_info_get_size (info)); return 0; }
static void gulong_gst_date_transform (const GValue *src, GValue *dest) { gulong day = g_value_get_ulong (src); GDate *date = g_date_new_julian (day); gst_value_set_date (dest, date); g_date_free (date); }
void utl_date_julian_to_dmy (guint32 julian, gint *day, gint *month, gint *year) { g_return_if_fail (g_date_valid_julian (julian)); GDate *d = g_date_new_julian (julian); if (day != NULL) *day = g_date_get_day (d); if (month != NULL) *month = g_date_get_month (d); if (year != NULL) *year = g_date_get_year (d); g_date_free (d); }
Day * logview_utils_day_copy (Day *day) { Day *retval; retval = g_slice_new0 (Day); retval->date = g_date_new_julian (g_date_get_julian (day->date)); retval->first_line = day->first_line; retval->last_line = day->last_line; retval->timestamp_len = day->timestamp_len; return retval; }
gchar * utl_date_print_j (guint32 julian, gint date_format, gint override_locale) { gchar *date_str; if (g_date_valid_julian (julian)) { GDate *d = g_date_new_julian (julian); date_str = utl_date_print (d, date_format, override_locale); g_date_free (d); } else date_str = g_strdup (_("No date")); return date_str; }
void select_date_day_cb (GtkWidget *widget, gpointer user_data) { GDate *date; MESSAGE *msg = (MESSAGE *) user_data; date = g_date_new_julian ((guint32) msg->data); g_return_if_fail (date != NULL); cal_jump_to_date (date, msg->appGUI); g_date_free (date); update_aux_calendars (msg->appGUI); fullyear_window_close_cb (GTK_WIDGET (widget), NULL, msg->appGUI); }
/* set due date returns false when not able to set */ gboolean gtodo_todo_item_set_due_date_as_julian(GTodoItem *item, guint32 julian) { if(julian == GTODO_NO_DUE_DATE) { if(item->due != NULL) { g_date_free(item->due); item->due = NULL; } } if(!g_date_valid_julian((guint32)julian)) return FALSE; if(item->due == NULL) item->due = g_date_new_julian((guint32)julian); else g_date_set_julian(item->due, (guint32)julian); return TRUE; }
gint julian_to_year (guint32 julian_day) { GDate *tmpdate; gint year; g_return_val_if_fail (g_date_valid_julian (julian_day) == TRUE, 0); tmpdate = g_date_new_julian (julian_day); g_return_val_if_fail (tmpdate != NULL, 0); year = g_date_get_year (tmpdate); g_date_free (tmpdate); return year; }
gchar * utl_get_julian_day_name (guint32 julian) { static gchar buffer[BUFFER_SIZE]; GDate *tmpdate = NULL; buffer[0] = '\0'; g_return_val_if_fail (g_date_valid_julian (julian) == TRUE, buffer); tmpdate = g_date_new_julian (julian); g_return_val_if_fail (tmpdate != NULL, buffer); g_date_strftime (buffer, BUFFER_SIZE, "%A", tmpdate); g_date_free (tmpdate); return buffer; }
void select_date_day_cb (GtkWidget *widget, gpointer user_data) { guint year, month, day; GDate *cdate; MESSAGE *msg = (MESSAGE *) user_data; cdate = g_date_new_julian ((guint32) msg->data); g_return_if_fail (cdate != NULL); day = g_date_get_day (cdate); month = g_date_get_month (cdate); year = g_date_get_year (cdate); g_date_free (cdate); jump_to_date (day, month - 1, year, msg->appGUI); update_aux_calendars (msg->appGUI); fullyear_window_close_cb (GTK_WIDGET (widget), NULL, msg->appGUI); }
void gnc_frequency_save_to_recurrence(GncFrequency *gf, GList **recurrences, GDate *out_start_date) { GDate start_date; gint page_index; gnc_date_edit_get_gdate(gf->startDate, &start_date); if (out_start_date != NULL) *out_start_date = start_date; if (recurrences == NULL) return; page_index = gtk_notebook_get_current_page(gf->nb); switch (page_index) { case PAGE_NONE: { // empty-recurrence list ~~ none. } break; case PAGE_ONCE: { Recurrence *r = g_new0(Recurrence, 1); recurrenceSet(r, 1, PERIOD_ONCE, &start_date, WEEKEND_ADJ_NONE); *recurrences = g_list_append(*recurrences, r); } break; case PAGE_DAILY: { gint multiplier = _get_multiplier_from_widget(gf, "daily_spin"); Recurrence *r = g_new0(Recurrence, 1); recurrenceSet(r, multiplier, PERIOD_DAY, &start_date, WEEKEND_ADJ_NONE); *recurrences = g_list_append(*recurrences, r); } break; case PAGE_WEEKLY: { int multiplier = _get_multiplier_from_widget(gf, "weekly_spin"); int checkbox_idx; for (checkbox_idx = 0; CHECKBOX_NAMES[checkbox_idx] != NULL; checkbox_idx++) { GDate *day_of_week_aligned_date; Recurrence *r; const char *day_widget_name = CHECKBOX_NAMES[checkbox_idx]; GtkWidget *weekday_checkbox = glade_xml_get_widget(gf->gxml, day_widget_name); if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(weekday_checkbox))) continue; day_of_week_aligned_date = g_date_new_julian(g_date_get_julian(&start_date)); // increment until we align on the DOW. while ((g_date_get_weekday(day_of_week_aligned_date) % 7) != checkbox_idx) g_date_add_days(day_of_week_aligned_date, 1); r = g_new0(Recurrence, 1); recurrenceSet(r, multiplier, PERIOD_WEEK, day_of_week_aligned_date, WEEKEND_ADJ_NONE); *recurrences = g_list_append(*recurrences, r); } } break; case PAGE_SEMI_MONTHLY: { int multiplier = _get_multiplier_from_widget(gf, "semimonthly_spin"); *recurrences = g_list_append(*recurrences, _get_day_of_month_recurrence(gf, &start_date, multiplier, "semimonthly_first", "semimonthly_first_weekend")); *recurrences = g_list_append(*recurrences, _get_day_of_month_recurrence(gf, &start_date, multiplier, "semimonthly_second", "semimonthly_second_weekend")); } break; case PAGE_MONTHLY: { int multiplier = _get_multiplier_from_widget(gf, "monthly_spin"); Recurrence *r = _get_day_of_month_recurrence(gf, &start_date, multiplier, "monthly_day", "monthly_weekend"); *recurrences = g_list_append(*recurrences, r); } break; default: g_error("unknown page index [%d]", page_index); break; } }
void calendar_draw_page (GtkPrintOperation *operation, GtkPrintContext *context, gint npage, gpointer user_data) { PangoLayout *layout; PangoFontDescription *month_name_font, *day_name_font, *day_num_font, *event_font; cairo_t *cr; GDate *date; gdouble page_width, page_height, day_width, day_height; gint text_width, text_height, header_height, event_height, mnf_height, dnf_height, duf_height; gint day, month, i, j; guint32 julian; gboolean monday, actual; gchar buffer[BUFFER_SIZE]; gint padding = config.cal_print_padding; GUI *appGUI = (GUI *) user_data; date = g_date_new_julian (g_date_get_julian (appGUI->cal->date)); g_return_if_fail (date != NULL); cr = gtk_print_context_get_cairo_context (context); layout = gtk_print_context_create_pango_layout (context); month_name_font = pango_font_description_from_string (config.cal_print_month_name_font); day_name_font = pango_font_description_from_string (config.cal_print_day_name_font); day_num_font = pango_font_description_from_string (config.cal_print_day_num_font); event_font = pango_font_description_from_string (config.cal_print_event_font); pango_layout_set_text (layout, "Aj", -1); pango_layout_set_font_description (layout, month_name_font); pango_layout_get_pixel_size (layout, NULL, &mnf_height); mnf_height *= 1.2; pango_layout_set_font_description (layout, day_name_font); pango_layout_get_pixel_size (layout, NULL, &dnf_height); dnf_height *= 1.2; pango_layout_set_font_description (layout, day_num_font); pango_layout_get_pixel_size (layout, NULL, &duf_height); page_width = gtk_print_context_get_width (context); day_width = page_width / 7; page_height = gtk_print_context_get_height (context); header_height = mnf_height + dnf_height; day_height = (page_height - header_height) / 6; event_height = day_height - duf_height - padding * 3; cairo_set_line_width (cr, 1); monday = (config.display_options & GUI_CALENDAR_WEEK_START_MONDAY) ? TRUE : FALSE; /* Month and year */ pango_layout_set_font_description (layout, month_name_font); g_date_strftime (buffer, BUFFER_SIZE, "%B %Y", date); pango_layout_set_text (layout, buffer, -1); pango_layout_get_pixel_size (layout, &text_width, NULL); cairo_move_to (cr, (page_width - text_width) / 2, 0); pango_cairo_show_layout (cr, layout); /* Day names */ pango_layout_set_font_description (layout, day_name_font); for (i = 0; i < 7; i++) { g_snprintf (buffer, BUFFER_SIZE, "%s", utl_get_day_name (i + 7 + monday, FALSE)); pango_layout_set_text (layout, buffer, -1); pango_layout_get_pixel_size (layout, &text_width, NULL); cairo_move_to (cr, day_width * i + (day_width - text_width) / 2, mnf_height); pango_cairo_show_layout (cr, layout); } /* Day */ g_date_set_day (date, 1); day = g_date_get_weekday (date); month = g_date_get_month (date); day = monday ? day - 1 : day % 7; if (day > 0) g_date_subtract_days (date, day); day = g_date_get_day (date); julian = g_date_get_julian (date); pango_layout_set_wrap (layout, PANGO_WRAP_WORD_CHAR); pango_layout_set_width (layout, (day_width - padding * 2) * PANGO_SCALE); pango_layout_set_height (layout, event_height * PANGO_SCALE); pango_layout_set_ellipsize (layout, PANGO_ELLIPSIZE_END); pango_layout_set_indent (layout, -4 * PANGO_SCALE); for (i = 0; i < 6; i++) { for (j = 0; j < 7; j++) { actual = (month == g_date_get_month (date)) ? TRUE : FALSE; day = g_date_get_day (date); cairo_rectangle (cr, day_width * j, header_height + day_height * i, day_width, day_height); if (actual) { cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); } else { cairo_set_source_rgb (cr, 0.8, 0.8, 0.8); } cairo_fill_preserve (cr); cairo_set_source_rgb (cr, 0, 0, 0); cairo_stroke (cr); pango_layout_set_font_description (layout, day_num_font); if (actual) { cairo_move_to (cr, day_width * j + padding, header_height + day_height * i + padding); if ((j == 0 && !monday) || (j == 5 && monday) || j == 6) { g_snprintf (buffer, BUFFER_SIZE, "<span color=\"red\">%d</span>", day); } else { g_snprintf (buffer, BUFFER_SIZE, "%d", day); } pango_layout_set_markup (layout, buffer, -1); pango_cairo_show_layout (cr, layout); cal_print_get_events (buffer, julian, appGUI); pango_layout_set_markup (layout, "", -1); pango_layout_set_text (layout, buffer, -1); pango_layout_set_font_description (layout, event_font); pango_layout_get_pixel_size (layout, NULL, &text_height); cairo_move_to (cr, day_width * j + padding, header_height + day_height * (i + 1) - text_height - padding); pango_cairo_show_layout (cr, layout); } else { cairo_move_to (cr, day_width * j + padding, header_height + day_height * i + padding); g_snprintf (buffer, BUFFER_SIZE, "<span color=\"white\">%d</span>", day); pango_layout_set_markup (layout, buffer, -1); pango_cairo_show_layout (cr, layout); } g_date_add_days (date, 1); julian++; } } g_date_free (date); pango_font_description_free (month_name_font); pango_font_description_free (day_name_font); pango_font_description_free (day_num_font); pango_font_description_free (event_font); g_object_unref (layout); }
/* should not be used by the user. internal function */ GTodoItem * gtodo_client_get_todo_item_from_xml_ptr(GTodoClient *cl, xmlNodePtr node) { GTodoItem *item =NULL; xmlChar *category; if(node == NULL) return NULL; category = xmlGetProp(node->parent, (const xmlChar *)"title"); node = node->xmlChildrenNode; item = gtodo_client_create_empty_todo_item(); gtodo_todo_item_set_category(item, (gchar *)category); xmlFree(category); while(node != NULL) { if(xmlStrEqual(node->name, (const xmlChar *)"comment")) { xmlChar *temp; temp = xmlNodeGetContent(node); if(temp != NULL) { item->comment = g_strdup((gchar *)temp); xmlFree(temp); } } else if(xmlStrEqual(node->name, (const xmlChar *)"summary")) { xmlChar *temp; temp = xmlNodeGetContent(node); if(temp != NULL) { item->summary = g_strdup((gchar *)temp); xmlFree(temp); } } else if(xmlStrEqual(node->name, (const xmlChar *)"attribute")) { xmlChar *temp; temp = xmlGetProp(node, (const xmlChar *)"id"); if(temp != NULL) { item->id = g_ascii_strtoull((gchar *)temp, NULL,0); xmlFree(temp); } temp = xmlGetProp(node, (const xmlChar *)"priority"); if(temp != NULL) { item->priority = atoi((gchar *)temp); xmlFree(temp); } temp = xmlGetProp(node, (const xmlChar *)"done"); if(temp != NULL) { item->done = atoi((gchar *)temp); xmlFree(temp); } temp = xmlGetProp(node, (const xmlChar *)"start_date"); if(temp != NULL) { guint64 i = g_ascii_strtoull((gchar *)temp, NULL, 0); if(i > 0) item->start = g_date_new_julian(i); xmlFree(temp); } temp = xmlGetProp(node, (const xmlChar *)"completed_date"); if(temp != NULL) { guint64 i = g_ascii_strtoull((gchar *)temp, NULL, 0); if(i > 0) item->stop = g_date_new_julian(i); xmlFree(temp); } temp = xmlGetProp(node, (const xmlChar *)"notify"); if(temp != NULL) { gint i = (int)g_ascii_strtod((gchar *)temp,NULL); item->notify = (int)i; xmlFree(temp); } temp = xmlGetProp(node, (const xmlChar *)"enddate"); if(temp != NULL) { guint64 i = g_ascii_strtoull((gchar *)temp, NULL, 0); if(i > 1 && i != GTODO_NO_DUE_DATE) item->due = g_date_new_julian(i); xmlFree(temp); } temp = xmlGetProp(node, (const xmlChar *)"endtime"); if(temp != NULL) { gint houre =0, minute = 0; gint i = (int)g_ascii_strtod((gchar *)temp,NULL); if(i < 0) { houre = -1;minute = 0; } else if( i > 0 && i < 1500) { houre = (int)i/60; minute = (int)i - houre*60; } item->due_time[GTODO_DUE_TIME_HOURE] = houre; item->due_time[GTODO_DUE_TIME_MINUTE] = minute; xmlFree(temp); } temp = xmlGetProp(node, (const xmlChar *)"last_edited"); if(temp != NULL) { guint64 i = g_ascii_strtoull((gchar *)temp, NULL, 0); item->last_edited = (time_t) i; xmlFree(temp); } } node = node->next; } return item; }
void cal_print_get_events (gchar *buffer, guint32 julian, GUI *appGUI) { GtkTreePath *path; GtkTreeIter iter; GtkTreeModel *model; GSList *lnode; struct note *a; gint i; gchar *wbuf1, *wbuf2; gchar buf1[BUFFER_SIZE], buf2[BUFFER_SIZE]; GDate *date, *sdate; gint age, syear; guint32 tsk_julian; gint time; gint max_event_length; GRegex *reg; buffer[0] = '\0'; max_event_length = (config.cal_print_event_length + 2 > BUFFER_SIZE) ? BUFFER_SIZE : config.cal_print_event_length + 2; #ifdef TASKS_ENABLED /* tasks */ if (config.cal_print_tasks) { model = GTK_TREE_MODEL (appGUI->tsk->tasks_list_store); g_return_if_fail (model != NULL); path = gtk_tree_path_new_first (); while (gtk_tree_model_get_iter (model, &iter, path) == TRUE) { gtk_tree_model_get (model, &iter, TA_COLUMN_DUE_DATE_JULIAN, &tsk_julian, TA_COLUMN_CATEGORY, &wbuf1, -1); if (tsk_julian == julian && tasks_category_get_state (wbuf1, STATE_CALENDAR, appGUI) == TRUE) { gtk_tree_model_get (model, &iter, TA_COLUMN_DUE_TIME, &time, TA_COLUMN_SUMMARY, &wbuf2, -1); if (time >= 0) { g_snprintf (buf1, max_event_length, "\n[%02d:%02d] %s", time / 3600, time / 60 % 60, wbuf2); } else { g_snprintf (buf1, max_event_length, "\n%s", wbuf2); } g_strlcat (buffer, buf1, BUFFER_SIZE); g_free (wbuf2); } g_free (wbuf1); gtk_tree_path_next (path); } gtk_tree_path_free (path); } #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED /* birthdays */ if (config.cal_print_birthdays) { model = GTK_TREE_MODEL (appGUI->cnt->contacts_list_store); g_return_if_fail (model != NULL); date = g_date_new (); g_return_if_fail (date != NULL); sdate = g_date_new_julian (julian); g_return_if_fail (sdate != NULL); syear = g_date_get_year (sdate); path = gtk_tree_path_new_first (); while (gtk_tree_model_get_iter (model, &iter, path) == TRUE) { gtk_tree_model_get (model, &iter, COLUMN_BIRTH_DAY_DATE, &tsk_julian, -1); if (g_date_valid_julian (tsk_julian)) { g_date_set_julian (date, tsk_julian); age = syear - g_date_get_year (date); if (age >= 0) { if (g_date_valid_dmy (g_date_get_day (date), g_date_get_month (date), syear) == FALSE) { g_date_subtract_days (date, 1); } g_date_set_year (date, syear); if (g_date_compare (date, sdate) == 0) { gtk_tree_model_get (model, &iter, COLUMN_FIRST_NAME, &wbuf1, COLUMN_LAST_NAME, &wbuf2, -1); utl_name_strcat (wbuf1, wbuf2, buf2); g_snprintf (buf1, max_event_length, "\n%s (%d)", buf2, age); g_strlcat (buffer, buf1, BUFFER_SIZE); } } } gtk_tree_path_next (path); } gtk_tree_path_free (path); g_date_free (sdate); g_date_free (date); } /* name days */ if (config.cal_print_namedays) { model = GTK_TREE_MODEL (appGUI->cnt->contacts_list_store); g_return_if_fail (model != NULL); date = NULL; date = g_date_new (); g_return_if_fail (date != NULL); sdate = NULL; sdate = g_date_new_julian (julian); g_return_if_fail (sdate != NULL); syear = g_date_get_year (sdate); path = gtk_tree_path_new_first (); while (gtk_tree_model_get_iter (model, &iter, path) == TRUE) { gtk_tree_model_get (model, &iter, COLUMN_NAME_DAY_DATE, &tsk_julian, -1); if (g_date_valid_julian (tsk_julian)) { g_date_set_julian (date, tsk_julian); if (g_date_valid_dmy (g_date_get_day (date), g_date_get_month (date), syear) == TRUE) { g_date_set_year (date, syear); if (g_date_compare (date, sdate) == 0) { gtk_tree_model_get (model, &iter, COLUMN_FIRST_NAME, &wbuf1, COLUMN_LAST_NAME, &wbuf2, -1); utl_name_strcat (wbuf1, wbuf2, buf1); g_snprintf (buf2, max_event_length, "\n%s (%s)", buf1, _("Name day")); g_strlcat (buffer, buf2, BUFFER_SIZE); } } } gtk_tree_path_next (path); } gtk_tree_path_free (path); g_date_free (sdate); g_date_free (date); } #endif /* CONTACTS_ENABLED */ /* day note */ if (config.cal_print_day_notes) { if (appGUI->cal->notes_list != NULL) { wbuf1 = NULL; reg = g_regex_new ("\n", 0, 0, NULL); for (i = 0, lnode = appGUI->cal->notes_list; lnode != NULL; lnode = lnode->next, i++) { a = g_slist_nth_data (appGUI->cal->notes_list, i); if (a->date == julian) { wbuf1 = g_regex_replace_literal (reg, a->note, -1, 0, " ", 0, NULL); break; } } g_regex_unref (reg); } if (wbuf1 != NULL) { g_strstrip (wbuf1); g_snprintf (buf1, max_event_length, "\n%s", wbuf1); g_strlcat (buffer, buf1, BUFFER_SIZE); g_free (wbuf1); } } #ifdef HAVE_LIBICAL /* ical */ if (config.cal_print_ical) { } #endif /* HAVE_LIBICAL */ g_strstrip (buffer); }
GDate* darxen_conversions_get_date_from_mod_julian(int julian_day) { return g_date_new_julian(julian_day + 719161 + 1); }
static GDate * gdate_copy (GDate *date) { return g_date_new_julian (g_date_get_julian (date)); }