DateObjects can be of varying physical dimensions.
CurrentDate[Today, #] & /@ {"Day", "Month", "Year"} How do you get the size of a DateObject? I tried AbsoluteOptions[Today] but it returns unevaluated. Ideas?
DateObjects can be of varying physical dimensions.
CurrentDate[Today, #] & /@ {"Day", "Month", "Year"} How do you get the size of a DateObject? I tried AbsoluteOptions[Today] but it returns unevaluated. Ideas?
Here's a way to do it entirely in the FE (i.e. without a full Rasterize call, which is done in the FE anyway):
getBoxSize[c_Cell] := {#[[1]], Total@#[[2 ;;]]} &@First@ FrontEndExecute@GetBoundingBoxSizePacket[c]; getBoxSize[e_] := getBoxSize[Cell[BoxData@ToBoxes[e]]] getBoxSize@CurrentDate[#] & /@ {"Day", "Month", "Year"} {{148., 25.}, {121., 25.}, {90., 25.}} Note that this is much faster than using a raw Rasterize:
getBoxSize@CurrentDate[#] & /@ {"Day", "Month", "Year"} // RepeatedTiming {0.04, {{151., 25.}, {121., 25.}, {90., 25.}}} Rasterize[CurrentDate[#], "RasterSize"] & /@ {"Day", "Month", "Year"} // RepeatedTiming {0.24, {{151, 26}, {121, 26}, {90, 26}}} Update
(After the clarification of the question, my original answer was not on target)
An alternative to using ImageDimensions is to use the "RasterSize" property with Rasterize:
dates = CurrentDate[Today,#]& /@ {"Day","Month","Year"}; Rasterize[#, "RasterSize"]& /@ dates {{148, 26}, {121, 26}, {90, 26}}
Original answer
You can use DateValue to determine the granularity of a DateObject:
dates = CurrentDate[Today, #] & /@ {"Day", "Month", "Year"}; DateValue[#, "Granularity"]& /@ dates {"Day", "Month", "Year"}
You can find the size in pixels by using ImageDimensions and Rasterize, like so:
Map[ImageDimensions@*Rasterize, CurrentDate[Today, #] & /@ {"Day", "Month", "Year"}] (* {{148, 26}, {121, 26}, {90, 26}} *) Rasterize. (+1) for now. $\endgroup$