XML 17 R46.htm IDEA: XBRL DOCUMENT v2.4.1.9
Accumulated Other Comprehensive (Loss) Income - Changes in Accumulated Other Comprehensive (Loss) Income (Details) (USD $)
In Thousands, unless otherwise specified
3 Months Ended 9 Months Ended
Feb. 28, 2015
Nov. 30, 2014
Aug. 31, 2014
Feb. 28, 2014
Nov. 30, 2013
Aug. 31, 2013
Feb. 28, 2015
Feb. 28, 2014
Accumulated Other Comprehensive Income (Loss) [Roll Forward]                
Beginning Balance $ 17,510us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax $ 26,818us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax $ 28,428us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax $ 40,286us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax $ 37,951us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax $ 38,123us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax $ 28,428us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax $ 38,123us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
Other comprehensive (loss) income before reclassifications (22,261)us-gaap_OtherComprehensiveIncomeLossBeforeReclassificationsNetOfTax (9,796)us-gaap_OtherComprehensiveIncomeLossBeforeReclassificationsNetOfTax (2,098)us-gaap_OtherComprehensiveIncomeLossBeforeReclassificationsNetOfTax (5,222)us-gaap_OtherComprehensiveIncomeLossBeforeReclassificationsNetOfTax 1,847us-gaap_OtherComprehensiveIncomeLossBeforeReclassificationsNetOfTax (660)us-gaap_OtherComprehensiveIncomeLossBeforeReclassificationsNetOfTax    
Amounts reclassified from accumulated other comprehensive (loss) income 488us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax 488us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax 488us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax 488us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax 488us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax 488us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax    
Other comprehensive income (loss) (21,773)us-gaap_OtherComprehensiveIncomeLossNetOfTax (9,308)us-gaap_OtherComprehensiveIncomeLossNetOfTax (1,610)us-gaap_OtherComprehensiveIncomeLossNetOfTax (4,734)us-gaap_OtherComprehensiveIncomeLossNetOfTax 2,335us-gaap_OtherComprehensiveIncomeLossNetOfTax (172)us-gaap_OtherComprehensiveIncomeLossNetOfTax (32,691)us-gaap_OtherComprehensiveIncomeLossNetOfTax (2,571)us-gaap_OtherComprehensiveIncomeLossNetOfTax
Ending Balance (4,263)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax 17,510us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax 26,818us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax 35,552us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax 40,286us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax 37,951us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax (4,263)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax 35,552us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
Foreign Currency                
Accumulated Other Comprehensive Income (Loss) [Roll Forward]                
Beginning Balance 29,632us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
39,410us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
41,525us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
52,706us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
50,666us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
51,312us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
41,525us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
51,312us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
Other comprehensive (loss) income before reclassifications (22,237)us-gaap_OtherComprehensiveIncomeLossBeforeReclassificationsNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
(9,778)us-gaap_OtherComprehensiveIncomeLossBeforeReclassificationsNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
(2,115)us-gaap_OtherComprehensiveIncomeLossBeforeReclassificationsNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
(5,121)us-gaap_OtherComprehensiveIncomeLossBeforeReclassificationsNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
2,040us-gaap_OtherComprehensiveIncomeLossBeforeReclassificationsNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
(646)us-gaap_OtherComprehensiveIncomeLossBeforeReclassificationsNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
   
Amounts reclassified from accumulated other comprehensive (loss) income 0us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
0us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
0us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
0us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
0us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
0us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
   
Other comprehensive income (loss) (22,237)us-gaap_OtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
(9,778)us-gaap_OtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
(2,115)us-gaap_OtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
(5,121)us-gaap_OtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
2,040us-gaap_OtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
(646)us-gaap_OtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
   
Ending Balance 7,395us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
29,632us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
39,410us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
47,585us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
52,706us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
50,666us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
7,395us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
47,585us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
Unrealized Loss on Derivatives                
Accumulated Other Comprehensive Income (Loss) [Roll Forward]                
Beginning Balance (11,643)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
(12,110)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
(12,615)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
(13,552)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
(13,851)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
(14,339)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
(12,615)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
(14,339)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
Other comprehensive (loss) income before reclassifications (29)us-gaap_OtherComprehensiveIncomeLossBeforeReclassificationsNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
(21)us-gaap_OtherComprehensiveIncomeLossBeforeReclassificationsNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
17us-gaap_OtherComprehensiveIncomeLossBeforeReclassificationsNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
(102)us-gaap_OtherComprehensiveIncomeLossBeforeReclassificationsNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
(189)us-gaap_OtherComprehensiveIncomeLossBeforeReclassificationsNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
0us-gaap_OtherComprehensiveIncomeLossBeforeReclassificationsNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
   
Amounts reclassified from accumulated other comprehensive (loss) income 488us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
488us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
488us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
488us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
488us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
488us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
   
Other comprehensive income (loss) 459us-gaap_OtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
467us-gaap_OtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
505us-gaap_OtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
386us-gaap_OtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
299us-gaap_OtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
488us-gaap_OtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
   
Ending Balance (11,184)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
(11,643)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
(12,110)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
(13,166)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
(13,552)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
(13,851)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
(11,184)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
(13,166)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
Other                
Accumulated Other Comprehensive Income (Loss) [Roll Forward]                
Beginning Balance (479)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
(482)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
(482)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
1,132us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
1,136us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
1,150us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
(482)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
1,150us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
Other comprehensive (loss) income before reclassifications 5us-gaap_OtherComprehensiveIncomeLossBeforeReclassificationsNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
3us-gaap_OtherComprehensiveIncomeLossBeforeReclassificationsNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
0us-gaap_OtherComprehensiveIncomeLossBeforeReclassificationsNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
1us-gaap_OtherComprehensiveIncomeLossBeforeReclassificationsNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
(4)us-gaap_OtherComprehensiveIncomeLossBeforeReclassificationsNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
(14)us-gaap_OtherComprehensiveIncomeLossBeforeReclassificationsNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
   
Amounts reclassified from accumulated other comprehensive (loss) income 0us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
0us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
0us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
0us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
0us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
0us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
   
Other comprehensive income (loss) 5us-gaap_OtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
3us-gaap_OtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
0us-gaap_OtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
1us-gaap_OtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
(4)us-gaap_OtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
(14)us-gaap_OtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
   
Ending Balance $ (474)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
$ (479)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
$ (482)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
$ 1,133us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
$ 1,132us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
$ 1,136us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
$ (474)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember
$ 1,133us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= ctas_AccumulatedOtherAdjustmentMember