Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdint.h>
- const uint32_t YEAR_MAX = 2000;
- typedef struct {
- uint8_t day: 5;
- uint8_t year: 3;
- uint8_t month_1: 4;
- uint8_t month_2: 4;
- } date;
- date new_date(const uint8_t day, const uint8_t month, const uint8_t year) {
- const date d = { .day = day, .month_1 = month << 2, .month_2 = month >> 2, .year = year };
- return d;
- }
- int main() {
- uint8_t day = 0, month = 0, year = 0;
- puts("Day, Month, Year from 2000: ");
- scanf("%u%u%u", &day, &month, &year);
- const date d = new_date(day, month, year);
- 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));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement