/*************************************** * ora_legale.c * * * ***************************************/ #include main(argc,argv) int argc; char **argv; { char command[40]; char stringa[5]; int yy, mm, dd, hh, min, sec; int year; if (argc < 2) usage(); if (*argv[1] != '+' && *argv[1] != '-'){ printf(" Invalid parameter %s \n\n", argv[1]); usage(); } data_ora(&yy, &mm, &dd, &hh, &min, &sec); if (*argv[1] == '+') hh += 1; else hh -= 1; strcpy(command, "setime "); yy -= 1900; itoa(yy, stringa); aggiusta(stringa); strncat(command, stringa, strlen(stringa)); strncat(command, " ", strlen(" ")); itoa(mm, stringa); aggiusta(stringa); strncat(command, stringa, strlen(stringa)); strncat(command, " ", strlen(" ")); itoa(dd, stringa); aggiusta(stringa); strncat(command, stringa, strlen(stringa)); strncat(command, " ", strlen(" ")); itoa(hh, stringa); aggiusta(stringa); strncat(command, stringa, strlen(stringa)); strncat(command, " ", strlen(" ")); itoa(min, stringa); aggiusta(stringa); strncat(command, stringa, strlen(stringa)); strncat(command, " ", strlen(" ")); itoa(sec, stringa); aggiusta(stringa); strncat(command, stringa, strlen(stringa)); system(command); printf(" command \"%s\" executed\n", command); } usage() { printf(" ora_legale : to advance or delay of one hour \n\n\n"); printf(" usage: ora_legale + ( to advance : solar->'summer') \n"); printf(" ora_legale - ( to delay : 'summer'->solar) \n"); printf("\n\n\n Warning: program is not well protected.\n"); printf(" Use it when a change of hour does not change date!\n"); exit(0); } aggiusta(stringa) char *stringa; { char stringa1[5]; if (strlen(stringa) == 2) return 0; strcpy(stringa1, stringa); strcpy(stringa, "0"); strncat(stringa, stringa1, strlen(stringa1)); return 0; }