Как прочитать биос дату и время? - PullRequest
0 голосов
/ 10 июня 2011

Есть ли способ прочитать дату и время в BIOS, используя c.

Есть заголовочный файл bios.h имеет метод _bios_timeofday для получения текущего времени, как получить текущую дату.

Ответы [ 2 ]

1 голос
/ 10 июня 2011

Я не знаю ни одного предопределенного метода в bios.h, который возвращает текущую дату BIOS. Для этого вы можете использовать time.h

Как эти ..

способ 1:

#include <stdio.h>
#include <time.h>
void main()
{
  char *Day[7] = {
                   "Sunday"  , "Monday", "Tuesday", "Wednesday",
                   "Thursday", "Friday", "Saturday"
                 };
  char *Month[12] = {
                     "January",   "February", "March",    "April",
                     "May",       "June",     "July",     "August",
                     "September", "October",  "November", "December"
                    };

  char *Suffix[] = { "st", "nd", "rd", "th" };
  int i = 3;                                
  struct tm *OurT = NULL;                   
  time_t Tval = 0;
  Tval = time(NULL);
  OurT = localtime(&Tval);

  switch( OurT->tm_mday )
  {
    case 1: case 21: case 31:
      i= 0;                  /* Select "st" */
      break;
    case 2: case 22:
      i = 1;                 /* Select "nd" */
      break;
    case 3: case 23:
      i = 2;                 /* Select "rd" */
      break;
    default:
      i = 3;                 /* Select "th" */
      break;
  }

  printf("\nToday is %s the %d%s %s %d", Day[OurT->tm_wday],
      OurT->tm_mday, Suffix[i], Month[OurT->tm_mon], 1900 + OurT->tm_year);
  printf("\nThe time is %d : %d : %d",
                                      OurT->tm_hour, OurT->tm_min, OurT->tm_sec );
}

способ 2:

#include<stdio.h>
#include<time.h>

int main(void)
{
    time_t t;
    time(&t);
    printf("Todays date and time is : %s",ctime(&t));
    return 0;
}

И здесь - хорошее руководство по методам bios.h и time.h с хорошими примерами.

0 голосов
/ 10 июня 2011

Изучено бесплатно из примера, который вы разместили в своей ссылке.

/*  Example for biostime    */ 

#include <stdio.h> 
#include <bios.h> 

void main () 
{   
   long ticks;

   ticks = biostime (0, 0L); 
   printf("Ticks since midnight is %d\n", ticks); 
   printf("The seconds since midnight is %d\n", ticks*18.2);

   int allSeconds = ticks*18.2;

   int hours = allSeconds / 3600;
   int minutes = allSeconds / 60 - hours * 60;
   int seconds = allSeconds % 60;

   // I like military time, if you don't covert it and add an AM/PM indicator.
   printf("The bios time is %02d:%02d:%02d\n", hours, minutes, seconds);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...