Advertisement
paranid5

30.09 1

Sep 30th, 2022 (edited)
704
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.72 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdint.h>
  3.  
  4. const uint32_t YEAR_MAX = 2000;
  5.  
  6. typedef struct  {
  7.     uint8_t day: 5;
  8.     uint8_t year: 3;
  9.     uint8_t month_1: 4;
  10.     uint8_t month_2: 4;
  11. } date;
  12.  
  13. date new_date(const uint8_t day, const uint8_t month, const uint8_t year) {
  14.     const date d = { .day = day, .month_1 = month << 2, .month_2 = month >> 2, .year = year };
  15.     return d;
  16. }
  17.  
  18. int main() {
  19.     uint8_t day = 0, month = 0, year = 0;
  20.  
  21.     puts("Day, Month, Year from 2000: ");
  22.     scanf("%u%u%u", &day, &month, &year);
  23.  
  24.     const date d = new_date(day, month, year);
  25.     printf("day: %u, month: %u, year: %u, size: %lu", d.day, ((d.month_1 >> 2) + (d.month_2 << 2)), d.year + YEAR_MAX, sizeof(d));
  26.  
  27.     return 0;
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement