On Thu, Sep 13, 2012 at 08:31:44PM +0900, Jermaine O. wrote:

> (800..900).to_a (which represents: 08:00 - 09:00) will generate an
> array something like this:
>
> #=> [800,801,802,...... 899, 900]
>
> Whereas I would like the output to be like this:
>
> #=> [800,801,802,...... 859, 900]
>
> Basically it should bump to the next major number (hour) after 59
> instead of going all the way up to 99.

Do you just want to throw away values where the mod(100) values are
greater than 59?

    (800..900).reject { |n| (n % 100) > 59 }
    # => [800, 801, 802, 803, กฤ, 900]

Or do you want to map base-10 numbers to a kind of untyped base-60
format?

    (800..900).map { |n| (n / 60)*100 + (n % 60) }
    # => [1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329,
    1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340,
    1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351,
    1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1400, 1401, 1402,
    1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413,
    1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424,
    1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435,
    1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446,
    1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457,
    1458, 1459, 1500]