How to convert days into human-readable weeks and days in C

2 Answers

0 votes
#include <stdio.h>

int main() {
    int days = 26;
    
    printf("%d Weeks, %d Days\n", days / 7, days % 7);
    
    return 0;
}

 
  
  
/*
run:
  
3 Weeks, 5 days
  
*/    

 



answered Jun 26, 2024 by avibootz
0 votes
#include <stdio.h>
#include <string.h>

void ToReadableWeeksDays(int totalDays, char *out, size_t outSize) {
    int weeks = totalDays / 7;   // whole weeks
    int days  = totalDays % 7;   // leftover days

    // Build the string manually
    snprintf(out, outSize,
             "%d week%s and %d day%s",
             weeks,
             (weeks == 1 ? "" : "s"),
             days,
             (days == 1 ? "" : "s"));
}

int main(void) {
    int days = 26;
    char buffer[64];

    ToReadableWeeksDays(days, buffer, sizeof(buffer));

    printf("%s\n", buffer);

    return 0;
}



/*
run:

3 weeks and 5 days

*/


 



answered Dec 31, 2025 by avibootz
...