Swift 有没有一种方法可以显示一个大数字在一个小数字范围内的位置?

Swift 有没有一种方法可以显示一个大数字在一个小数字范围内的位置?,swift,operators,Swift,Operators,我不太清楚这个问题怎么说,但也许举个例子会有帮助 是否有一个运算符可以在1-7的数字范围内显示25的位置 例如: 25/7返回4 21/7返回7 22/7返回1 4/7返回4 等等 代码示例: var dayOfMonth: Int = 28 var aNumber: Int aNumber = (dayOfMonth ) % 7 func dayOfTheWeek(day: Int) { switch day { case 0: print("Monday"

我不太清楚这个问题怎么说,但也许举个例子会有帮助

是否有一个运算符可以在1-7的数字范围内显示25的位置

例如:

25/7返回4

21/7返回7

22/7返回1

4/7返回4

等等

代码示例:

var dayOfMonth: Int = 28

var aNumber: Int

aNumber = (dayOfMonth ) % 7

func dayOfTheWeek(day: Int) {

    switch day {
  case 0:
        print("Monday")
  case 1:
        print("Tuesday")
  case 2:
        print("Wednesday")
  case 3:
        print("Thursday")
  case 4:
        print("Friday")
  case 5:
        print("Saturday")
  case 6:
        print("Sunday")
    default:
        print("Error")
  }

}


dayOfTheWeek(day: aNumber)

我想你在找用Swift写的那个。区别在于
21%7
0
,而不是
7


m%n
可以被认为是“m除以n后的余数”

请先尝试一下并分享代码,这样您可以得到更好的回答。您的目标是什么?您不需要手动枚举工作日,结果取决于您试图计算的月份和年份。你可以使用日历-工作日符号
Calendar.current.weekdaySymbols[weekday-1]
Ahh,我离你太近了。我实际上使用的是模,但我自己无法完全实现。我想做的是输入一个月的哪一天,让代码计算出一周的哪一天。如果我使用模(例如,我需要1来对应switch语句中的“星期一”,但它始终是余数0),它就会被关闭1。不过,我意识到可以将所有switch case语句减少1来解决这个问题。抱歉,太简单了,但是非常感谢您的回复@Z400Racer37您应该提及这种背景和过去的尝试,否则我们只是在黑暗中射击。这样你会得到更多的回复,它们会更好,更符合你的实际工作。@Z400Racer37还有,你为什么要手动滚动这个?为什么不直接使用
DateFormatter
(如果您想要名称,如“sunday”)或
DateComponents
(如果您想要一周内的天数,用于其他类型的计算)@Z400Racer37您可以通过从被除数中减去一个值并将其加回余数来移动模运算符的输出;e、 g.
(第1天)%7+1
生成范围
[1,7]
的数字,而不是
[0,6]
。在这种情况下,这是一个很好的“诀窍”,即使在你的情况下,这不是真的需要。@Z400Racer37在你的情况下,是的,只是重新编号的情况会更好。虽然这是一个很好的机会来学习各种格式化程序的基础。code>DateFormatter只是其中之一。它允许您以多种不同的组合(短格式、长格式、拼写、数字、0填充的数字等)打印日期的所有不同部分(年、月、日、周、小时、分钟)。它真的很灵活。但最重要的是,它默认为“写什么就做什么”,这对非英语用户至关重要。