Ik wil de huidige tijd van mijn systeem krijgen. Daarvoor gebruik ik de volgende code in C:
time_t now;
struct tm *mytime = localtime(&now);
if ( strftime(buffer, sizeof buffer, "%X", mytime) )
{
printf("time1 = \"%s\"\n", buffer);
}
Het probleem is dat deze code een willekeurige tijd geeft. Ook is de willekeurige tijd elke keer anders. Ik wil de huidige tijd van mijn systeem.
Antwoord 1, autoriteit 100%
Gekopieerd en geplakt van hier:
/* localtime example */
#include <stdio.h>
#include <time.h>
int main ()
{
time_t rawtime;
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
printf ( "Current local time and date: %s", asctime (timeinfo) );
return 0;
}
(voeg gewoon void
toe aan de main()
argumentenlijst om dit te laten werken in C)
Antwoord 2, autoriteit 52%
Initialiseer uw now
variabele.
time_t now = time(0); // Get the system time
De functie localtime
wordt gebruikt om de tijdwaarde in de doorgegeven time_t
om te zetten in een struct tm
, het haalt niet echt de systeemtijd.
Antwoord 3, autoriteit 27%
Eenvoudige manier:
#include <time.h>
#include <stdio.h>
#include <string.h>
int main(void)
{
time_t mytime = time(NULL);
char * time_str = ctime(&mytime);
time_str[strlen(time_str)-1] = '\0';
printf("Current Time : %s\n", time_str);
return 0;
}
Antwoord 4, autoriteit 11%
Om het antwoord van @mingos hierboven uit te breiden, heb ik de onderstaande functie geschreven om mijn tijd te formatteren naar een specifiek formaat ([dd mm jjjj uu:mm:ss]).
// Store the formatted string of time in the output
void format_time(char *output){
time_t rawtime;
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
sprintf(output, "[%d %d %d %d:%d:%d]",timeinfo->tm_mday, timeinfo->tm_mon + 1, timeinfo->tm_year + 1900, timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec);
}
Meer informatie over struct tm
vindt u hier.
Antwoord 5, autoriteit 8%
#include<stdio.h>
#include<time.h>
void main()
{
time_t t;
time(&t);
printf("\n current time is : %s",ctime(&t));
}
Antwoord 6, autoriteit 6%
U kunt deze functie gebruiken om de huidige lokale tijd op te halen. als je gmt wilt, gebruik dan de functie gmtime
in plaats van localtime
. proost
time_t my_time;
struct tm * timeinfo;
time (&my_time);
timeinfo = localtime (&my_time);
CCLog("year->%d",timeinfo->tm_year+1900);
CCLog("month->%d",timeinfo->tm_mon+1);
CCLog("date->%d",timeinfo->tm_mday);
CCLog("hour->%d",timeinfo->tm_hour);
CCLog("minutes->%d",timeinfo->tm_min);
CCLog("seconds->%d",timeinfo->tm_sec);
Antwoord 7, autoriteit 2%
Als je gewoon de tijd nodig hebt zonder de datum.
time_t rawtime;
struct tm * timeinfo;
time( &rawtime );
timeinfo = localtime( &rawtime );
printf("%02d:%02d:%02d", timeinfo->tm_hour, timeinfo->tm_min,
timeinfo->tm_sec);
Antwoord 8
#include <stdio.h>
#include <time.h>
void main()
{
time_t t;
time(&t);
clrscr();
printf("Today's date and time : %s",ctime(&t));
getch();
}
Antwoord 9
Het wordt aanbevolen om localtime_s
te gebruiken in plaats van localtime
.
Dit zou moeten werken.
time_t current_raw_time = time(0); // System time: number of seconds since 00:00, Jan 1 1970 UTC
struct tm day_time;
localtime_s(&day_time, ¤t_raw_time);
day_time
zal de volgende leden hebben:
struct tm
{
int tm_sec; // seconds after the minute - [0, 60] including leap second
int tm_min; // minutes after the hour - [0, 59]
int tm_hour; // hours since midnight - [0, 23]
int tm_mday; // day of the month - [1, 31]
int tm_mon; // months since January - [0, 11]
int tm_year; // years since 1900
int tm_wday; // days since Sunday - [0, 6]
int tm_yday; // days since January 1 - [0, 365]
int tm_isdst; // daylight savings time flag
};
Houd er rekening mee dat localtime
geen milliseconden geeft.
Antwoord 10
LANGE VERSIE
SRC: https://en.wikipedia.org/wiki/c_date_and_Time_Functions
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
time_t current_time;
char* c_time_string;
/* Obtain current time. */
current_time = time(NULL);
if (current_time == ((time_t)-1))
{
(void) fprintf(stderr, "Failure to obtain the current time.\n");
exit(EXIT_FAILURE);
}
/* Convert to local time format. */
c_time_string = ctime(¤t_time);
if (c_time_string == NULL)
{
(void) fprintf(stderr, "Failure to convert the current time.\n");
exit(EXIT_FAILURE);
}
/* Print to stdout. ctime() has already added a terminating newline character. */
(void) printf("Current time is %s", c_time_string);
exit(EXIT_SUCCESS);
}
De uitvoer is:
Current time is Thu Sep 15 21:18:23 2016
korte versie:
#include <stdio.h>
#include <time.h>
int main(int argc, char *argv[]) {
time_t current_time;
time(¤t_time);
printf("%s", ctime(¤t_time));
De uitvoer is:
Current time is Thu Jan 28 15:22:31 2021
Antwoord 11
jongens Ik heb een nieuwe manier gekregen systeemtijd. Hoewel het lang is en vol domme werken, maar op deze manier kunt u systeemtijd in gehele getal-indeling krijgen.
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
char hc1,hc2,mc1,mc2;
int hi1,hi2,mi1,mi2,hour,minute;
system("echo %time% >time.txt");
fp=fopen("time.txt","r");
if(fp==NULL)
exit(1) ;
hc1=fgetc(fp);
hc2=fgetc(fp);
fgetc(fp);
mc1=fgetc(fp);
mc2=fgetc(fp);
fclose(fp);
remove("time.txt");
hi1=hc1;
hi2=hc2;
mi1=mc1;
mi2=mc2;
hi1-=48;
hi2-=48;
mi1-=48;
mi2-=48;
hour=hi1*10+hi2;
minute=mi1*10+mi2;
printf("Current time is %d:%d\n",hour,minute);
return 0;
}