C program to get and set system date time in Windows.

/*
	* program to get and set the current system date in windows
	* Compiler : turboC
*/

#include <stdio.h>
#include <dos.h>

int main()
{
	char choice;
	struct dosdate_t date; /*predefine structure to get date*/
	_dos_getdate(&date);

	printf("\nCurrent date is : %02d -%02d -%02d",date.day,date.month,date.year);
	printf("\nWant to change date (Y: yes):");
	choice=getchar();

	if(choice=='Y'||choice=='y'){
		printf("Enter new date :\n");
		printf("Enter day  :"); scanf("%d",&date.day);
		printf("Enter month:"); scanf("%d",&date.month);
		printf("Enter year :"); scanf("%d",&date.year);

		_dos_setdate(&date);
		printf("\nDate changed successfully.");
	}

	return 0;
}
    
Current date is : 04 -07 -2012
Want to change date (Y: yes):Y
Enter new date :
Enter day  :10
Enter month:7
Enter year :2012

Date changed successfully.
    
    
Explanation:
Predefine Structure dosdate_t used by _dos_getdate and _dos_setdate.
   struct dosdate_t 
   {
     unsigned char day;        /* 1--31 */
     unsigned char month;      /* 1--12 */
     unsigned int  year;       /* 1980--2099 */
     unsigned char dayofweek;  /* 0--6; 0 = Sunday */
   };