Funkcje daty w ANSI C. Nie mogę znaleźć bibliotek.

Odpowiedz Nowy wątek
2010-06-06 22:24
0

Witam
Piszę projekt na zaliczenie semestru w języku C. Chciałem napisać funkcję (dodawanie nowych elementów do listy jednokierunkowej z czterema elementami) z datą: mianowicie rok i miesiąc. W instrukcji od visuala jest napisane że są to funkcje year oraz month, a ja użyłem tego z argumentem now. Program niestety mówi mi że takie funkcje są niezdefiniowane. Te 2 są mi potrzebne do późniejszej wersji programu. Dodam, że piszę program "domowy budżet", te funkcje są mi potrzebne do wyposażenia program w pisanie raportów miesięcznych oraz rocznych.
Wklejam fragment kodu. Może macie jakieś pomysły?

#include <stdio.h> 
#include <stdlib.h> 

typedef struct lista 
{    struct lista *next; 
   int rok; 
   int mies; 
   char typesign; 
   float wart; 
} listaout, listain; 

listaout *firstout=NULL; 
listain *firstin=NULL; 
choose=0; 

void add_element_out (struct listaout *list,char letter, float valueof) 
{ 
   struct lista *ptr=NULL,*newone=NULL; 
   ptr=list; 
   while (ptr-> next!=NULL) 
      { 
         ptr=ptr->next; 
      } 

   newone=malloc(sizeof(listaout)); 
   newone->rok=year(now()); 
   newone->mies=month(now()); 
   newone->typesign=letter; 
   newone->wart=valueof; 

ptr-> next=newone 
}

Pozdrawiam i dziękuję za wszelką pomoc.

Pozostało 580 znaków

2010-06-06 23:20
0

Poszukaj http://cplusplus.com/reference/clibrary/ctime/

Pozostało 580 znaków

2010-06-08 03:05
0

Dziekuje bardzo, pomoglo :) Wklejam kod, moze komus się przyda.
biblioteka time.h

void add_element_out (listaout *list,char letter, float valueof)
{
        FILE *f;
    time_t curtime;
    struct tm *loctime;
    struct lista *ptr=NULL,*newone=NULL;

    ptr=list;
    while (ptr-> next!=NULL)
        {
            ptr=ptr->next;
        }
    curtime=time(NULL);
    loctime=localtime(&curtime);

    newone=malloc(sizeof(listaout));
    newone->rok=(loctime->tm_year)+1;
    newone->mies=(loctime->tm_mon)+1;
    newone->typesign=letter;
    newone->wart=valueof;
f=fopen("out.txt","a+");
fprintf(f,"%d %d %c %f \n",newone->rok, newone->mies, newone->typesign, newone->wart);
fclose(f);
ptr-> next=newone;
}

a więc: funkcja time zwraca czas. Localtime zwraca czas, jaki mamy na komputerze, posługując się strukturą tm. Aby dostać się do numeru roku (zwraca wartość current year - 1900) musimy posłużyć się zmienna->tm_costam.
Pozdrawiam

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0