Avatar billede hein Nybegynder
06. juli 2001 - 11:34 Der er 5 kommentarer

CTime C++ nybegynder

Hej
Jeg har dags dato og nu vil jeg gerne have den første i næste måned. ex 06-07-2001 og vil have 01-08-2001
første del ser således ud men hvordan kommer jeg vidre? Hvordan manipulere man med tiden?
 
CTime theTime = CTime::GetCurrentTime();
CString s = theTime.Format( \"%d-%m-%Y\" );
c_Deactivate.SetWindowText(s);

Mange tak for hjælpen :o)
Avatar billede mickni33 Nybegynder
06. juli 2001 - 14:07 #1
Hvis du skal stille på det virkelige ur skal du jo stille på uret i din maskines bios. Ved dog ikke hvordan men er måske heller ikke særligt smart.

Hvis du bare skal stille på uret på det tidspunkt hvor det vises på skærmen kan man gøre sådan her.
Borland Builder 4.0

_fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
const int size=20;
int index=0;
char date[size];
char dag[5];
char mnd[5];
char year[5];
String buffer=\"\";
String ny_date[5];
char ch;

strcpy(date,DateToStr(Now()).c_str());

for(int i=0;i<size;i++){
ch=date[i];            //sætter første char d.v.s dag =ch
        if(ch != \'-\'){  //når ch != \'-\' lægges i buffer
        buffer=buffer+ch;
        }
                if(ch ==\'-\'){          //når ch == \'-\' lægges i array
                ny_date[index]=buffer;
                buffer=\"\\0\";          //buffer renses
                index++;
                }
}
        ny_date[index]+=buffer;

/*KONVENTERER først fra String til char[] med strcpy og
c.Str() til konvertering, derefter konventerer jeg fra
char[] til integer.
*/
int int_dag=atoi(strcpy(dag,ny_date[0].c_str()));
int int_mnd=atoi(strcpy(mnd,ny_date[1].c_str()));
int int_year=atoi(strcpy(year,ny_date[2].c_str()));

    int_dag=int_dag+20;  //ligger 20 dage til dag
    Edit2->Text=int_dag;  //udskriver dag,mnd,year
    Edit3->Text=int_mnd;
    Edit4->Text=int_year;
}
Avatar billede hein Nybegynder
06. juli 2001 - 14:29 #2
Jeg er ikke helt sikker på at jeg har forklaret hvad jeg vil godt nok, så jeg prøver lige igen.

Jeg bruger Visual C++ 5.0

Ud fra en dato (dagsdato) eks. 06-05-2001
Vil jeg finde/beregne den første i næste månede altså 01-06-2001
herefter udskriver datoen til et en editbox

Denne linie henter dagsdato
CTime theTime = CTime::GetCurrentTime();

<+1 til månede>
<dag til 01>
<conveter til streng>

Avatar billede hein Nybegynder
06. juli 2001 - 14:46 #3
Jeg fandt selv svaret så jeg lukker   
CTime theTime = CTime::GetCurrentTime();
CTime nextFirst(theTime.GetYear(),theTime.GetMonth()+1, 1, 00, 00, 0 );
CString s = nextFirst.Format( \"%d-%m-%Y\" );
    c_Deactivate.SetWindowText(s);

Men tak alligevel
Avatar billede mickni33 Nybegynder
12. juli 2001 - 22:29 #4
Der er stadig ikke lukket for spørgsmålet :)
Avatar billede wisen Nybegynder
24. august 2001 - 12:49 #5
Lukker du for spg ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester