fork(1) download
  1. #include <stdio.h>
  2.  
  3. main(){
  4. // Init the variables we use
  5. int year = 0;
  6. int month = 0;
  7. int day = 0;
  8. int maxDay = 0;
  9. int daysToAdd = 0;
  10.  
  11. // Ask user for a date
  12. printf("Please enter a date in the following format: dd/mm/yyyy:\n");
  13. // Validate data
  14. while( scanf( "%d/%d/%d", &day, &month, &year)!= 3 || day<=0 || month<=0 || year<0 || daysInMonth(month,year)<day ){
  15. printf("Please enter a valid date.\n");
  16. }
  17.  
  18. // Ask user for days to add
  19. printf("Please enter days to add: \n");
  20. // Validate data
  21. while( scanf( "%d", &daysToAdd)!= 1 || daysToAdd<=0 ){
  22. printf("Please enter a positive number.\n");
  23. }
  24.  
  25. // Calculate date
  26.  
  27. day += daysToAdd;
  28. maxDay = daysInMonth( month, year);
  29. while( day>maxDay ){
  30.  
  31. day -= maxDay;
  32. month += 1;
  33. if(month==13){
  34. month = 1;
  35. year += 1;
  36. }
  37.  
  38. maxDay = daysInMonth( month, year);
  39. }
  40.  
  41. printf("Result date : %d/%d/%d", day, month, year);
  42.  
  43. return(0);
  44. }
  45.  
  46. // Get days in the month
  47. int daysInMonth( int month, int year){
  48. if( month==4 || month==6 || month==9 || month==11 ){
  49. return 30;
  50. }else if( month== 2 ){
  51. if( year%4==0 && ( year%100==0 || year%400==0) )
  52. return 29;
  53. else
  54. return 28;
  55. }else{
  56. return 31;
  57. }
  58. }
  59.  
Success #stdin #stdout 0s 2252KB
stdin
8/8/2014
125
stdout
Please enter a date in the following format: dd/mm/yyyy:
Please enter days to add: 
Result date : 11/12/2014