2016-11-14 2 views
-1

В настоящее время я пытаюсь преобразовать 6-значное число в день недели. Например, я хочу, чтобы «150102» было конвертировано в будние дни пятницы «15» - это 2015 год, «01» - месяц, а «02» - деньКонвертировать 6-значное число в будний день (python)

Примечание. Я хочу сделать это без импорта любые функции времени и использование языка python.

+0

И что вы пробовали/получили до сих пор? Почему вы не хотите импортировать какие-либо функции времени (есть много нюансов, когда дело доходит до работы с датой/временем, которая ... неприятна для работы без специального API)? Что (конкретно) вы застряли? – user2478398

+0

Вы ищете алгоритм, предложенный для вас, или просто общую идею и вещи, на которые нужно смотреть. Как упоминалось в @ user2478398, при вычислении времени есть много деталей. –

+0

Мы не перешли в любое время в классе, поэтому мы не можем их использовать. Я не могу преобразовать 6-значное число в будний день – CSCdummie

ответ

1

Ну, судя по вашим комментариям, это задание (что означает, что оно должно быть помечено как таковое). Поэтому я боюсь, что мое решение будет неопределенным, но дайте некоторое руководство на (чтение, вероятно, не самое лучшее) решение.

во-первых, вы хотите иметь то, что разделяет данную строку в год/месяц/день.

public class Date { 
    private int year, month, date; 

    public Date(final String given) { 
     // TODO - Extract year/month/date. 
     // Validate year is supported, month exists and date 
     // exists in month... 
    } 
} 

Далее, ваша (вероятно) нужна какая-то фиксированная точка, которую вы знаете в будний день (скажем, 1 января 2000 года; суббота).

Затем используйте свои знания о днях в году/високосный год, каждый месяц и т. Д., Чтобы узнать, сколько дней с, что датируется предоставленным аргументом.

static int daysSinceKnown(Date date) { 
    // TODO - How many years since, how many of those were leap-years, etc. 
} 

Наконец, модульная арифметика может дать вам день недели из возврата этой функции. (В частности, глядя на это значение mod 7 (%7), вы получите номер 0-6 [отрицательные числа не будут работать красиво, но вы можете поймать это при проверке года), которые вы можете интерпретировать как день недели.)

+0

. Поэтому я не думаю, что требуется високосный год, так как мы просто используем год 2015. Кроме того, можно ли конвертировать это в питон? Я изо всех сил пытаюсь читать этот язык – CSCdummie

+0

Ярмарка сделана на високосные годы. И я уверен, что это так; но я боюсь не со мной (никогда не смотрел на питон). Честно говоря, здесь есть реальный код реализации, а только заполнители, чтобы помочь объяснить поток, поэтому его не должно быть слишком сложно преобразовать (за исключением, возможно, создания методов класса «Дата» 3, возвращающих год/месяц /Дата). – user2478398

Смежные вопросы