题目:
给你一个字符串 date,它的格式为 yyyy-mm-dd,表示一个公历日期。
date 可以重写为二进制表示,只需要将年、月、日分别转换为对应的二进制表示(不带前导零)并遵循 year-month-day 的格式。
返回 date 的 二进制 表示。
示例 1:
输入: date = “2080-02-29”
输出: “100000100000-10-11101”
解释:
100000100000, 10 和 11101 分别是 2080, 02 和 29 的二进制表示。
示例 2:
输入: date = “1900-01-01”
输出: “11101101100-1-1”
解释:
11101101100, 1 和 1 分别是 1900, 1 和 1 的二进制表示。
提示:
date.length == 10date[4] == date[7] == '-',其余的date[i]都是数字。- 输入保证 
date代表一个有效的公历日期,日期范围从 1900 年 1 月 1 日到 2100 年 12 月 31 日(包括这两天)。 
思路:
简单题,无需多盐
代码:
class Solution {
public:
    string getBinary(int num) {
        string ans;
        while (num) {
            ans.insert(0, 1,'0' + num % 2);
            num /= 2;
        }
        return ans;
    }
    string convertDateToBinary(string date) {
        int year = 0, month = 0, day = 0;
        for (int i = 0; i < date.size(); i++) {
            if (i < 4) {
                year += (date[i] - '0') * (1000 / pow(10, i));
            } else if (4 < i && i < 7) {
                month += (date[i] - '0') * (10 / pow(10, i - 5));
            } else if (7 < i && i < 10) {
                day += (date[i] - '0') * (10 / pow(10, i - 8));
            }
        }
        string ans;
        ans += getBinary(year);
        ans += "-";
        ans += getBinary(month);
        ans += "-";
        ans += getBinary(day);
        return ans;
    }
};